emilhe / dash-leaflet

MIT License
204 stars 33 forks source link

GeoTIFFOverlay removed, any alternative? #198

Open juanfcocontreras opened 10 months ago

juanfcocontreras commented 10 months ago

I just realized that in the new dash-leaflet version 1.0 the GeoTIFFOverlay component has been removed.

Is there any alternative to continue displaying raster files? Or is there any way to use the old component in the new version (even if it is not maintained), for example, by copying certain files from the previous version, and that it is maintained by users?

I use dash-leaflet and this component a lot and the truth is that I am worried about having to stay on the old outdated version.

Thank you in advance!

emilhe commented 10 months ago

I am currently looking into a (better) alternative(s), one path may be https://github.com/GeoTIFF/georaster-layer-for-leaflet, but please feel free to suggest other options. For large datasets, I would generally recommend serving the data using a tile server.

EDIT: To elaborate a bit, some of the benefits of (Cloud Optimized) GeoTIFF (COG) over a PNG image is the ability to load only part of the file. However, this ability is not leveraged by the old GeoTIFFOverlay component, and hence, I don't see that it provides much benefit over the ImageOverlay component (please correct me, if you see it differently). I would thus like to arrive at a new implementation, which is able to leverage the benefits of COG. Presently, you could do that "manually", e.g. by using a tile server (like terracotta) to populate a TileLayer, or adding a pre-processing step as suggested by @prl900 to populate ImageOverlays. But I agree that a more "native" solution (or maybe just a reference example) would be good.

prl900 commented 10 months ago

In our case, we use the generic ImageOverlay to display all images or rasters on maps. The approach is to set up an external server that serves PNGs and can do the conversion from GeoTIFF, or any other raster format, into PNG.

GeoTIFFS can be quite large which comes with memory constraints and setting an external service simplifies the dash apps so it works well for the apps we do but not sure about other use cases.

mdavid800 commented 9 months ago

Hi all. Related to this I am trying to think of the best way I can use a xarray data set and load this onto a dash-leaflet map.

I have used terracotta in the past but my datasets are created in the fly in this instance (after modelling) so they are dynamic , so I am thinking something else should be better. .

Ipyleaflet has a LocalTileLayer and the package xarray-leaflet seems to look to turn xarray datasets into these these type of layers .

@emilhe have you ever looked at this at all?

Xarray-leaflet: https://github.com/xarray-contrib/xarray_leaflet/blob/main/xarray_leaflet/xarray_leaflet.py

emilhe commented 9 months ago

I dont have any experience with LocalTileLayer, but I have previously used Terracotta in a dynamic setup without any issues.

jamaa commented 6 months ago

+1 for preserving the GeoTIFFOverlay. We use it for displaying rasters with actual data values (not RGB colors).