Message Boards Message Boards

Functionality request: ability to use WMS servers with GeoServer

Posted 2 years ago

There are a abundance of GIS Data Servers out there that follow the WMS Server protocol. Is there an ability to connect the GeoComputation functions to such services? (ie GeoImage, GeoGraphics, etc).

This will be of great use, example, connecting to GIS land use datasets or imagery GIS services such as www.eos.com/landviewer

POSTED BY: Diego Zviovich
3 Replies
Posted 2 years ago

Thank you so much Jose M. Martin-Garcia for the response. I have several WMS servers in mind to target. (Example: ARCGIS Living Atlas of the World , EOS Landviewer, United States Census Bureau TigerWeb amongst many.

If there is any additional internal information that could be shared (you can have one contact me directly via email; Mads, Vitaliy have it), that can further guide me in the process: I will use this to explore the connectivity between WL and these public/private services. Then it will be a base to share this excellent topic as a presentation for the 2022 Wolfram Technology Conference.

Many thanks in advance.

POSTED BY: Diego Zviovich

Hi,

We are indeed working on this, and there is internally some partial support for WMS. For example, take one of the free WMS servers listed in https://wiki.openstreetmap.org/wiki/WMS :

url = "http://ows.mundialis.de/services/service";

One needs to investigate the layers, projections, etc available in that server. The standard way to do this is fetching the "capabilities" file with something like:

Import[url <> "?request=getcapabilities&service=wms"]

The result is not easy to parse, so we provide some internal help:

In[]:= GIS`GeoServerData[url, "Version"]
Out[]= {"WMS Version: 1.1.1"}

In[]:= GIS`GeoServerData[url, "Layers"]
Out[]= {"Dark", "OSM-Overlay-WMS", "OSM-WMS", "OSM-WMS-no-labels", "SRTM30-Colored", "SRTM30-Colored-Hillshade", "SRTM30-Contour", "SRTM30-Hillshade", "TOPO-OSM-WMS", "TOPO-WMS"}

and there are some other properties.

In the end you can use something like the following, where you specify ranges of projected coordinates, the image size of the result and the geo server parameters. Note the specification of the geo protocol, with its version, and the choice of layer. The projection is specified via an EPSG code, in this case that of Mercator:

"Image" /. GIS`FetchWMSImage[Automatic, GeoImage, 
     "TileRange" -> 20000000 {{-1, 1}, {-1, 1}}, 
     "RasterSize" -> {1000, 1000},
     "GeoServer" -> {url, "CRS" -> "EPSG:3857", "GeoProtocol" -> {"WMS", "1.1.1"},  "Layer" -> "TOPO-WMS"}
 ]

We get something like this:

enter image description here

This will all be handled via GeoImage and GeoGraphics in a future WL version soon.

Hi Diego, I sent this to our teams. They are quite aware of WMS servers and working on this.

POSTED BY: Vitaliy Kaurov
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract