kaktus40 / Cesium-GeoserverTerrainProvider

plug in to use geoserver as terrain provider
Other
356 stars 140 forks source link

Distorted terrain images #44

Closed vistacon21 closed 3 years ago

vistacon21 commented 3 years ago

Hi, I have an issue with terrain data that looks blocky/jagged when zooming in. This is for DTED level 0 source data.

distorted-terrain

The process I followed to transform/load the data is as follows:

Go to dted0 root directory cd dted0

Make a retile output directory mkdir dted0-tiles

Build the virtual dataset file from dted0 gdalbuildvrt dted0.vrt .//.dt0

Retile from the virtual dataset file to 512 x 512 tiles gdal_retile.py -v -r cubic -levels 4 -ps 512 512 -co "TILED=YES" -targetDir dted0-tiles dted0.vrt

Create ImagePyramid raster data store in geoserver with dted0-tiles as the source Publish the corresponding layer in geoserver Check the layer preview to make sure the layer loaded correctly

Create new Geoserver Terrain Provider:

var terrainProvider = new Cesium.GeoserverTerrainProvider({ service: "WMS", url : "http://localhost:8084/geoserver/elevation/wms", layerName: "dted0-tiles", });

See the attached screenshot to see an example of the blocky/jagged terrain

One thing I noticed is that the WMS web service calls to get terrain data are getting 65 x 65 PNG tiles, not sure if this is expected or not.

Can you recommend how I can best troubleshoot this?

Thanks

kaktus40 commented 3 years ago

Hello what is the configuration of your layer in geoserver?

vistacon21 commented 3 years ago

Here is the response returned from the GetCapabilities web service API call. If it's more helpful, I can also attach screenshots of the geoserver tabs for the layer (dted0-tiles) get-capabilities-response.txt

kaktus40 commented 3 years ago

From your capability document I understand that you don't use bil/DDS plugin for geoserver nor the style coming from this repository. Is it the case?

vistacon21 commented 3 years ago

Yes, that is true. Should I be using both?

kaktus40 commented 3 years ago

You should use one or another. If none, you should convert your images (see th in the nutshell in README.md)

vistacon21 commented 3 years ago

Thanks, would you recommend one approach vs another (i.e use BIL/DDS plugin)?

kaktus40 commented 3 years ago

I think the use of BIL/DDS plugin is the best.

vistacon21 commented 3 years ago

I will try that, thanks

vistacon21 commented 3 years ago

I downloaded the BIL/DDS plugin for the version of geoserver I’m running and installed the jar files. After that, I was able to confirm that BIL and DDS are now available from the "All Formats" dropdown box on the Layer Preview screen. I also rebuilt the geoserver dted0 store and image pyramid.

When I look at the response from the GetCapabilities web service API call, now I see BIL and DDS referenced (see attachment)

While zooming in on the map, this is what the WMS API calls look like now to get the terrain data:
 http://localhost:8084/geoserver/elevation/ows?SERVICE=WMS&REQUEST=GetMap&layers=dted0-tiles&version=1.3.0&bbox=-180.703125,-90.703125,-89.296875,0.703125&crs=CRS:84&srs=CRS:84&format=image/bil&width=65&height=65

I see requests being made for BIL image type, though still 65x65 tiles for some reason. The Developer Tools Network Response tab looks like this:


Name: ows
Dimensions: 0 × 0
MIME Type: image/bil

I looked at the geoserver logs and I can see the requests are being logged with no errors. Could there be a layer config issue I have that’s causing the terrain to not render properly?

get-capabilities-with-bil-dds.txt

kaktus40 commented 3 years ago

you have to configure your layer in geoserver to provide bil/DDS data https://docs.geoserver.org/stable/en/user/community/dds/index.html

vistacon21 commented 3 years ago

Thanks for your support on this issue. Once I installed the BIL/DDS plugin and configured the geoserver BIL format settings on the elevation layer Publishing tab, the terrain rendered as expected.