How does one creates a raster layer from SQL Server in GeoServer - geoserver

I want to implement a weather layer that displays temperatures from -40 to 40 degress in a map using GeoServer. I got an SQL Server table that looks something like:
create table temperature (id int identity primary key, geom geometry, temperature float)
Geom contains a Point for which a given temperature measure is applicable. I have added the table as layer in GeoServer but i'm stuck to actually be able to render it. Right now, the best i get is a big red square :D So, it seems like it renders as a pure point, and not a raster.
How does one creates correct bindings etc for the raster to be displayed nicely?
Is it done on SLD level or somewhere else?

You could use the BarnesSurface transformation as described in this question. But since the transformation will be carried out each and every time the map is displayed it would be more efficient to rasterize the points once and then use that raster in GeoServer.

Related

CARTO Animation Time Series Map

Hello I am making a animation time series map in CARTO builder. The animation works fine, but I would like my points to continuously move from point A to B, not just populate from point A to B like its doing now if theres a vast distance for the particular ID for that point. I know this would work if I had many more coordinates filling in from point A to B like in this example, but I don't. So is there a way to do this in cartodb?
CARTO BUILDER allows you to analyze and visualize your data according to your values. So as you pointed out, you would need to enrich your dataset with data among those dates and locations. Regarding dates, you can use generate_series PostgreSQL function as explained here. In relation to generating points between two coordinates, you would need to create a line (via Connect with lines analysis or ST_MakeLine) and then apply ST_DumpPoints).

Create heightmap in C# based on elevation data

I recently came accross a site
http://www.daftlogic.com/sandbox-google-maps-find-altitude.htm
which gives me the elevation data of each point of any earth's location.
Now I want to build a desktop application in C# , using google maps api or otherwise , in which the user will search for the location and the image will be displayed of that location , where user can zoom in or out and select the required area. After selection , the tool will get elevation data of every point in the selected area , and it will create respective color in that point , so the highest point will have white and lowest point will have black , then it will convert the data into an image format. So if I can do this , I can basically create heightmap in seconds.
Can anyone tell me how to achieve this ? I don't have any idea regarding how to get the elevation data of every point in selected region , and how to calculate and create color image from that data.
Thanks.
I've had a look at the Google address you've pasted. My answer here is not exactly about that but it might halp you understand how elevation works. Google, as many other websites, uses a DEM map (Digital Elevation Maps: http://en.wikipedia.org/wiki/Digital_elevation_model) which is a rasterized image of a certain area, in which every pixel represent a real sample from the Satellite/Shuttle (or the interpolation between two sampled points).
These maps are quite huge, depending on the sampling frequence. For some area of the Globe the sampling area is very dense, while for other areas is more sparse. The USA have the best detail.
If you want to download the free DEMs this is a good starting point: http://srtm.csi.cgiar.org/SELECTION/inputCoord.asp
You could download a sample of every part of the area you want to include in your application, convert the data into a database (latitude, longitude, altitude) and have your application query the DB and return a set of pixels that you can paint in different colors, accordingly with your altitude ranges.
Hope this helped

Plotting dots to a map given latitude and longitude

Summary: I need a tool that can put 60m+ points on a map image. I'm trying to show density map and would like to plot a dot for each point (lat/long) on the map.
Hi I'm working on project that requires a density map. I have latitude and longitude and all the tools that I have seen (Ammap, FusionCharts maps, google charts/map) requires either XML or JSON or some other data type with the data points. Problem here is that, I have 60 million + data points and transferring any type of object with that many data point is not feasible.
One solution I can think of is mapping latitude and longitude to pixels of the map image. That requires a lot of time and work. I was wondering if you guys have done something similar and know of tools that can do this for me. It doesn't have to be free.
You'd be much better off creating a heatmap instead of passing all of the individual points to the map, which would get very busy, very quickly.
There are already a few discussions over at GIS.StackExchange about this exact topic. Search the the [heatmap] tag.
Since you mentioned FusionCharts, assuming you can load all of your data into a Google Fusion Table, it looks like you should be able to make a heat map in Google Fusion Tables).

What's the best way to identify the borders of a polygon based on a seed point?

Here's my problem - I have a map of the world or some sort of region, like this:
I need to generate a "border points" table for this map of a region in order to generate imagemaps and dynamically highlight certain areas. All of the maps' regions will have borders of one color to define them (in the example image, white).
So far, I'm thinking of some sort of flood-fill based method - note that speed and efficiency are not that important, as the script is in no way intended to be used in real time.
Is there a better way to do this that I don't know of? Is my approach fundamentally wrong? Any suggestions would be appreciated!
If the regions are completely isolated one from each other, looking at connected components would do the trick. In Mathematica it looks like:
First create a binary image from the world map:
regions = ColorNegate[Binarize[img, .9]]
Then compute the connected components:
components = MorphologicalComponents[regions, CornerNeighbors -> False];
Now you may extract properties for each of the components (masks, perimeters, etc.). Here I colorized each regions with a unique color:
Colorize[components]
To get the border of a given component, one can query for the binary mask of the component and then compute the perimeter.
This gets all the masks:
masks = ComponentMeasurements[components, "Mask"];
As an example, get the border, or contour, of one region:
country = Image[masks[[708, 2]], "Bit"]
border = MorphologicalPerimeter[country]
Getting 2D positions for the border is just a matter of extracting the white pixels in the image:
pos = Position[ImageData[border], 1]
If possible; try to get the vector data behind your map from another source. I understand this doesn't answer your question, but for world borders (and many others) you can find them publicly on the internet (google for "world borders shapefile"). This will give you more precise data, allow you to zoom at any level, reproject your map, use google maps or other layers, etc. You can display the vector data nicely with libraries like openlayers etc, but then you're slowly moving towards more complex GIS stuff.
If all you really need is based on an image, your flood fill approach might work (if the borders are indeed completely closed).

Get POINT CLOUD through 360 Degree Rotation and Image Processing

My Question is as below in two parts……
QUESTION (IN SHORT):
• To generate point cloud of real-world object….
• Through 360 degree rotation of it….on rotating table
• Getting 360 images… one image at each degree (1° to 360°).
• I know how to process image and getting pixel value of it.
• See one sample image below…you can see image is black and white...because I have to deal with the objects which are much shiny (glittery)…and it is DIAMOND. So I have setting up background so that shiny object (diamond) converted in to B/W object. And so I can easily scan outer edge of object (e.g. Diamond).
• And one thing to consider is I don’t using any laser… I just using one rotating table and one camera for taking image…you can see one sample project over here… but there MATLAB hides all the things…because that guy using MATLAB’s in Built functionality.
• Actually I am looking for Math routine or Algorithm or any Technique which helping me out to how getting point cloud…….using the way I have mentioned……..
MORE ELABORATION:
I need to have point-cloud of real-world object. So, I can display it in Computer Screen.
For that I am using one rotating table. I will put my object on it and I will rotate table a complete 360° degree rotation and I will take 360 images…one image at each degree (1° to 360°).
Camera which is used for taking image is well calibrated. I have given one sample image as below. I also know how to scan image and getting pixel value of it.
Also take in consideration that my images are Silhouette type…means just black and white... No color images.
But my problem is or where I am trapped down is in...
Getting Points cloud of object…….from the data which I have getting through processing of image.
One same kind of project I found over here……..
But it just using built in MATLAB functions…I am using Microsoft Visual C#.Net so I have to build the entire algorithm myself….because MATLAB hides all the things which I want to know….
Is there any master…….who know this entire thing well and getting me out of trap...!!!!
Thanks…..
I have no experience of this but If I wanted to do something like this I would have tried this:
Use a single color light source
if Possible create a lightsource which falls on a thin verticle slice of the object.
have 360 B/W Images, those Images will be images of a verticle line having variyng intensity. If you use matlab your matrix will have a/few column with sime values.
now asume a verticle line(your Axis of rotation).
5 plot or convert (imageno, rownoOfMatrix, ValueInPopulatedColumnInSameRow)... [Assuming numbering Image from 0 to 360]
under ideal conditions A lame way To get X and Y use K1 * cos imgNo * ValInCol and K1 * sin imgNo * ValInCol, and Z will be some K2 * rowNum.. K1 and K2 can be caliberated knowing actual size of object.
I mean Something like this:
http://fab.cba.mit.edu/content/processes/structured_light/
but instead of using structured light using a single verticle light
http://www.geom.uiuc.edu/~samuelp/del_project.html This link might help in triangulation...

Resources