Comments (5)
Seems like I misread the logs there: It doesn't only happen in the warp operation, but also before it. The time this takes could be related to reading the metadata of the dataset or something else that happens when first opening it. We could cache it, it's not a problem if it only happens the first time.
Maybe not though, since a larger size in meters of the request also increases this waiting time... Gotta figure out more exactly where it gets stuck.
Weird - the warp operation is only slow with a larger output pixel size (which is expected), but the amount it gets slower seems to be different depending on the raw data. It's also not consistently slow but it gets stuck - seemingly after each quarter of warping. Funnily, an image size of 3x3 gets slow after each third of warping, whereas a 2x2 image warps instantly even when requesting 5x5km.
I might want to test this with a different hard drive, that could be the reason too... or maybe it depends on how well the file system handles large files like that? (The TIF I'm testing with is over 100GB large)
from geodot-plugin.
No, GDALOpen is not the problem - It seems like it gets stuck before the warp, but apparently it's just stuck at 0% of the warp.
I guess this makes it somewhat easier since the warp is the only problem.
from geodot-plugin.
ChunkAndWarpMulti
is much faster than ChunkAndWarpImage
. Makes sense that it's somewhat faster, but it doesn't exhibit the stuck behavior at all at scales where ChunkAndWarpImage
does. However, it does also start getting stuck at similar points (quarters of progress) starting at a certain scale/resolution.
In order to handle images too large to hold in RAM, the warper needs to segment large images. This is the responsibility of the GDALWarpOperation class.
This could be the reason... but why is it loading everything into RAM, not just the required parts?
from geodot-plugin.
Ok, to some extent it's definitely a hard drive thing because loading it the first time takes long, and each time the same raster is requested afterwards is much faster.
I tried fixing #4 and this solves this issue because we can get rid of the whole warping stuff. It needs to be cleaned up though because something is not quite right with the coordinate transformation.
from geodot-plugin.
#4 does indeed fix this! bb065db is a proof of concept where this issue is gone, but not everything is reimplemented without GDALWarp yet. Further discussion will be in #4.
from geodot-plugin.
Related Issues (20)
- Expose Raster layer min/max functions
- Add basic coordinate transformation functionality HOT 1
- Add ability to save changes to FeatureLayer
- Add ability to create new Layers within a Dataset
- `set_attribute(String name, String value)` only works on existing entries
- Add functionality to get a HeightMapShape from a Float32 raster
- Add ability to modify Raster datasets HOT 2
- Add `GeoRasterLayer.get_file_info` for getting some metadata
- Add argument names explicitly such that they are visible within the Godot Editor Documentation
- Improve performance of GeoRasterLayer editing functions
- Implement a `GeoFeatureLayer.get_feature_class()` method
- Using `GeoRasterLayer.smooth_add_value_at_position()` requires to clean and rebuild overviews to show effect HOT 1
- Implement functionality for `GeoPolygon.set_outer_vertices(...)`
- Newly created GeoLines do not seem to be returned HOT 1
- Building on windows - scons is trying to use Mingw32 HOT 2
- Building on windows with docker: cannot find -lgodot-cpp.windows.template_debug.x86_64 HOT 5
- The "fill" value of -1000.0 in GeoRaster::get_as_array() should be the nodata value of the band HOT 1
- Add a demo for streaming data (e.g. via WMTS)
- Raster editing should be possible without writing the result to disk right away
- Update bindings (`_bind_methods()`) with proper argument names (and possibly a description) HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from geodot-plugin.