-
Notifications
You must be signed in to change notification settings - Fork 51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Interactive maps #44
Merged
Interactive maps #44
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* support non-async dask clients (launch http server on the client's event loop) * resolve awk/bad UX of the weakref dict; do layers by name? * proxy server * interp-based reprojection; at a minimum don't assume 3857 * scales
still need to make some optional
is leaflet requesting the wrong XYZs now? i think something is off on the js side.
This reverts commit 17b06d9.
This reverts commit c5ae97d.
Support custom tilesizes internally, because the code feels cleaner that way. But don't expose to users, because ipyleaflet breaks. This reverts commit 17c6420.
trying to figure out what's slowing down the compute calls. 1) we're using delayed_optimize, because the object is a delayed. should `dask.config.set({"delayed_optimize": dask.array.optimize})` 2) array_optimize is crazy slow (10x slower) because of `fuse_roots` 3) if you remove `fuse_roots`, the graph is broken. something in `optimize_blockwise` likely is counting on `fuse_roots` happening next.
don't trust any lockfiles before this
- no cancellations reported - occasional del with refcount 1 - no initial load?
- don't actually need the released thing on TileRef, issue solved by fire_and_forget - removing mangers on layer change isn't working - panning to a spot where browser has cached tiles reruns computation - maybe don't need full refcounts on TileRef, just a `requested_by_browser` flag? And then keep an LRU cache of them?
- swapping the same layer seems to fully work - adding the same object as multiple layers breaks. need to check for this and error for now - all tiles actually triggered on initial add to map
this only sorta works
ipyleaflet's iterative fitting was particularly bad, since it triggered tons of requests up and down zoom levels. basically the worst thing you could do here.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
stackstac.show
andstackstac.add_to_map
display Dask-backed DataArrays on ipyleaflet maps.I took a lot of inspiration from xarray-leaflet, and originally hoped we could just use that. However, xarray-leaflet doesn't handle async concurrency and the Dask event loop as carefully as I needed, so I ended up implementing something different from the ground up. Some day maybe this could be pulled out into a separate library, but for now it lives here.
Performance is still as good as I want. It gets "stuck" for a bit, then lots of tiles come in.
update_graph_hlg
is causing issues, since every time we submit a new tile to compute, it locks up the scheduler from sending back results, or scheduling tasks.stackstac.server_stats
bars can feel laggy / disconnected from what's going onOther changes:
reproject_array
,xyztile_of_array
, etc.)stackstac.mosaic
! Closes Mosaicking #1.