1

We need to create surface maps from the website. The data is stored on PostGIS (2.1) as a table of Point geometries with a field indicating a thematic value.

The optimal solution would be to produce a raster surface, but creating isolines would also be acceptable.

For the raster surface I would need to 1) rasterize the vector points and 2) interpolate the surface. Converting to Raster seems easy by using ST_AsRaster. The problem seems to be raster interpolation, which I can't find in the PostGIS documentation.

I'm thinking I could probably do that by rasterizing with PostGIS, saving to disk and calling GDAL/OGR at the CLI level. But we are also happy if there is another service available on the cloud where you can do this with less coding (CartoDB makes pretty maps, but no interpolation either).


Alternatively, we have been trying to set up a GeoServer (2.7.0) that gets the data from PostGIS and defines a Rendering Transformation to perform the interpolation on the fly with the WPS gs:BarnesSurface.

After various tests GeoServer keeps complaining about the sourceCRS being null. But the layer list on the GeoServer web GUI shows Native SRS as 4326 for this layer. All records on PostGIS geometry_columns table show SRID as 4326 (geometry being POINTZ). And the table itself has data with SRID 4326 (SELECT ST_SRID(location) FROM tagpulse show all records as 4326).

<?xml version="1.0" encoding="UTF-8"?><wps:Execute version="1.0.0" service="WPS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.opengis.net/wps/1.0.0" xmlns:wfs="http://www.opengis.net/wfs" xmlns:wps="http://www.opengis.net/wps/1.0.0" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" xmlns:wcs="http://www.opengis.net/wcs/1.1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsAll.xsd"> <ows:Identifier>gs:BarnesSurface</ows:Identifier> <wps:DataInputs> <wps:Input> <ows:Identifier>data</ows:Identifier> <wps:Reference mimeType="text/xml" xlink:href="http://geoserver/wfs" method="POST"> <wps:Body> <wfs:GetFeature service="WFS" version="1.0.0" outputFormat="GML2" xmlns:Openrtls="openrtls"> <wfs:Query typeName="Openrtls:tagpulse"/> </wfs:GetFeature> </wps:Body> </wps:Reference> </wps:Input> <wps:Input> <ows:Identifier>valueAttr</ows:Identifier> <wps:Data> <wps:LiteralData>precision</wps:LiteralData> </wps:Data> </wps:Input> <wps:Input> <ows:Identifier>scale</ows:Identifier> <wps:Data> <wps:LiteralData>1</wps:LiteralData> </wps:Data> </wps:Input> <wps:Input> <ows:Identifier>outputBBOX</ows:Identifier> <wps:Data> <wps:BoundingBoxData crs="EPSG:4326" dimensions="2"> <ows:LowerCorner>2.12535791799289 41.4889614713592</ows:LowerCorner> <ows:UpperCorner>2.12617025015472 41.4897123507268</ows:UpperCorner> </wps:BoundingBoxData> </wps:Data> </wps:Input> <wps:Input> <ows:Identifier>outputWidth</ows:Identifier> <wps:Data> <wps:LiteralData>70</wps:LiteralData> </wps:Data> </wps:Input> <wps:Input> <ows:Identifier>outputHeight</ows:Identifier> <wps:Data> <wps:LiteralData>108</wps:LiteralData> </wps:Data> </wps:Input> </wps:DataInputs> <wps:ResponseForm> <wps:RawDataOutput mimeType="image/tiff"> <ows:Identifier>result</ows:Identifier> </wps:RawDataOutput> </wps:ResponseForm> </wps:Execute>

And the result:

<wps:ExecuteResponse xml:lang="en" service="WPS" serviceInstance="http://localhost:8081/geoserver/ows?" version="1.0.0"> <wps:Process wps:processVersion="1.0.0"> <ows:Identifier>gs:BarnesSurface</ows:Identifier> <ows:Title>BarnesSurface</ows:Title> <ows:Abstract>Uses Barnes Analysis to compute an interpolated surface over a set of irregular data points.</ows:Abstract> </wps:Process> <wps:Status creationTime="2015-03-31T15:03:51.082Z"> <wps:ProcessFailed> <ows:ExceptionReport version="1.1.0"> <ows:Exception exceptionCode="NoApplicableCode"> <ows:ExceptionText>Process failed during execution java.lang.IllegalArgumentException: Argument &quot;sourceCRS&quot; should not be null. Argument &quot;sourceCRS&quot; should not be null.</ows:ExceptionText> </ows:Exception> </ows:ExceptionReport> </wps:ProcessFailed> </wps:Status> </wps:ExecuteResponse>

I ran out of ideas on how to fix this.

Anyone got one?

closed as unclear what you're asking by PolyGeo Jun 3 '17 at 1:15

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 1
    It looks like you're now asking a different, much more code-specif, question. Consider rewriting it / them? – Martin F Apr 1 '15 at 4:23