3D window creation and plotting in Ocean for Petrel - ocean

I am trying to draw a 3D plot in Petrel where I am trying to plot some volume data using OpenInventor.
I am doing this through a custom domain object. But I dont want to select an item from the input tree. I want my algorithm should automatically open a 3D window and do the plotting for me using data from that class.
How do I go about doing this?
I have a class with the data and the corresponding OIV factory class for plotting.
Please help. How do I create a cube and plot data automatically?
Regards

It sounds like you are not interested in integrating with the existing 3D window.
I suggest that you host your own OIV Examiner Viewer in your own dialog. Then you do not need to create data objects, render factories, etc.
If you do want to participate in the existing 3D window you need to do:
CoreSystem.Services.Register(typeof(MyData), typeof(IWindow3DRenderer), new MyRenderer());
and
var data = new MyData()
PetrelProject.Inputs.Add(data);
PetrelProject.ToggleWindows.Show(data);

Related

Exclude labels that are outside a designated region in Mapbox Studio

I'm currently working on a visualization on Mapbox that's focused on a given region, let's say Texas for the sake of this example. I want to make it so this region is emphasized on the map, with everything else faded to the background.
So far I've managed to import Natural Earth's shapefiles into Mapbox Studio in order to make everywhere outside of Texas a shade darker:
This is great, but ideally I'd like to hide all of Mapbox's labels that are outside of Texas. I've been trying to use filters in Mapbox studio to "filter out" all of the items on each layer, but it appears their layer settings don't allow me to filter based on a geospacial attribute (only data attributes).
Does anyone know of a way for me to hide all city labels outside of Texas; either programatically on the js Mapbox GL library, or ideally via Mapbox Studio?
In Mapbox Studio, select the layer. Then click 'select data' and then 'filter'. There should be an option to filter the layer by the ISO/parent. I've done the same with admin-1 labels to restrict to only US

Add a background map for sigma js

I have created a graph in Gephi using GeoLayout (showing network over the world). Now for my visualization I would like to add a background map in sigma.js ideally something like openstreetmap or a similar service. Is that possible?
Otherwise I could also imagining adding the graph to a leaflet map if that is easier. In any case I would need to know how this can be achieved. Any help is appreciated. Thanks!

Plotting real-time/dynamic data with D3 js

I am completely new to D3 js, but I have exposure to Highcharts. I was able to plot real time/dynamic data using HighCharts and also see the old data as there was a scrollbar feature to scroll left/right on the x-axis. The chart in question was a time-series chart with dynamic values displayed as a bar/line graph.
Is there a way to plot a dynamic chart in D3 which updates every second or so. Also I would like to see old data using panning feature in D3 js as it doesnt support scrollbar.
If you are aware of other open source and non-commercial charts which meet my requirement,kindly let me know.
You can try and use C3,js - the pubnub folks have written an extension for (EON) it that readily handles dynamic data; see an overview at https://www.pubnub.com/blog/2015-02-26-building-realtime-live-updating-animated-graphs-c3-js/ and the code at https://github.com/pubnub/eon-chart

generate geo tiles from vector data

i am facing this problem : I have in my database some vector data (polylines ...) which describe many world/country/region/cities boundaries.
I would like to have an interactive map on thoses areas.
When i render those data in the browser (data are sent in geojson) this is slow (i'am not surprised).
The next reason, is to generate some raster tiles to represent the areas at different zoom level and to have a way to make the relation between a click on a area and the area selected (to display more info).
I am a newbie in geo tiles :
What is the best tool to generate png/jpg tiles from vector data?
How to make relation between an area clicked and a "id" in database?
I know my questions are very large, but if you have some advices ...
Thanks!
I recently wrote a blog posting on how to improve the rendering speed of raster tiles:
http://blog.webfoot.com/2013/03/12/optimizing-map-tile-generation/
As for connecting a click to a jurisdiction ID, I don't think there is a shortcut: you need to translate the click into lat/lng (or Vast Coordinate System, as I describe in the blog post) and then do a point-in-polygon check. If you are using PostGIS, then you can do an ST_Intersects.
NOTE: if you are using MySQL, the intersection is done with bounding boxes, not the polygons. It still is possible: you just need to grab a point-in-polygon function from somewhere to check which polygon if a bounding-box check gets you more than one.
Here is an example of dots you can click on:
http://maps.webfoot.com/demos/CanadianStimulus/CanadianStimulus.html
Note that because people aren't precise with clicking (especially with tiny dots), I actually make a few pixels around the dots "live" as well as the single-pixel dots. You can also click away from the dot, and then it will show the polygon (which in this example's case, is the federal electoral district).
There is a MongoDB Plugin datasource for Geoserver, a full featured WebGIS Server. You can use it to build up a map rendering service (a WMS actually) ofyour data. Then use Geowebcache to generate tiles of your map.
This way you can use fully featured WebGIS stack, which allows you to manage additional datasources, and easy tile subset recreation if portions of your data get updated.
Also querying features on a map (relation map position to element in database) is provided through Geoservers WFS implementation.

3D animation programatically rendered in Blender

I have a project in which I would like to programatically create and render a 3d animation based upon input. I originally asked here on stackoverflow if Blender was right for the job, and the response was yes, but upon looking at the API, it says this:
Python was embedded in Blender, so to access BPython modules you need to run scripts from the program itself: you can't import the Blender module into an external Python interpreter.
I want to be able to create and render this scene without having to ever open another program like Blender. Is this possible, and is Blender still the right choice?
Thanks in advance!
At work me and colleague worked on a project that rendered 3d scenes altered externally. We used Python to modify/create scenes, and did the rending on server through the command line interface (no GUI).
You can pass a python script as an argument to Blender in the command line options to
generate your scene objects and do the rendering.
I don't see how you can render in Blender without using Blender.
You can use Blender if you want, obviously this is not your only option.
If you need to
create and render a 3d animation based upon input.
You can go as simple or as you complex as you'd like.
You can use OpenGL in your language of choice (C++, Java, Python, etc.)
and display the animation (with or without fancy renderings).
It's up to what 'render' means to your context.
If you need some nice shading(light, soft shadows, reflections, etc. - ray tracers basically), you can still show an interactive preview to your users and generate the scene
for a 3rd party renderer(like Yafaray, Sunflow, LuxRender, etc. - I've put together a short list of free renders), and show the progress to the users after they've chosen the external render option.
On a similar note, have a look at joons.
HTH
Cart by Suomi - Yafaray Gallery image
Julia quaternion fractal - Sunflow Gallery image
Klein Bottle - LuxRender Gallery image