Closed paulmis closed 1 year ago
By "the RGB index outputs the "default" image", do you mean the plain image? In case the pipeline does not contain the "RGB" module, would we just rely on the satellite images provided by Google Maps? Also, is the NDVI .tif image supposed to be in grayscale?
@nadinekuo
As for image size and weight, I'd say around 1024 x 1024 px (around 5 MB) to have decent quality but keep the app a bit responsive ;)
The downscaled image is 5000x4000 and is 28.5MB, which comes out at around 1.5MB/MP. Do you think this is good, or should it be a bit bigger?
By "the RGB index outputs the "default" image", do you mean the plain image?
Yeah, as in the normal color image.
In case the pipeline does not contain the "RGB" module, would we just rely on the satellite images provided by Google Maps?
Yes
Also, is the NDVI .tif image supposed to be in grayscale?
Yeah, as far as I can tell that's the format to store grayscale. What you can do is color it using an arbitrary color scheme (e.g. for NDVI is RdYlGn
to transform it into a color scale. Can you make an issue for that for the frontend?
Also, the bucket layout is as follows: terraform-scans/{field}/{MM-YYYY}/{scan}/pipelines/{pipeline}
whereas {field}
is {user}
at the moment?
The downscaled image is 5000x4000 and is 28.5MB, which comes out at around 1.5MB/MP. Do you think this is good, or should it be a bit bigger?
I'm afraid that even the downscaled image is too large (users typically don't even have close to that many pixels), but we can resize on the frontend after fetching them
Also, the bucket layout is as follows: terraform-scans/{field}/{MM-YYYY}/{scan}/pipelines/{pipeline} whereas {field} is {user} at the moment?
Might have forgotten to change it, please feel free to switch it to the field id.
I'm afraid that even the downscaled image is too large (users typically don't even have close to that many pixels), but we can resize on the frontend after fetching them
No, I meant I will downsize it to the target size/resolution at the backend, but do you want me to do it according to the 5MB size or 1MP resolution?
No, I meant I will downsize it to the target size/resolution at the backend, but do you want me to do it according to the 5MB size or 1MP resolution?
I'd say around 5MB, as 28.5 MB is most likely gonna lead to a drastic slowdown 😅 The ideal setting would be having different resolutions per zoom level but that is hard
I've populated Firestore and Cloud Storage with output examples. I've made some changes to the schema and bucket layout:
Please see if you agree with all these changes!!
The example data is here:
One important thing is that since we're supporting cameras that potentially don't capture all 3 RGB channels, the RGB index outputs the "default" image. However, that module might not be in a given pipeline, so the frontend needs to account for that.
Aaand regarding image sizes, they can grow very large - the example full-size RGB image is 0.5GB. We will downsize and compress the images on the backend to make it easier for you to display thumbnails and avoid progressive loading for the moment. What sizes (resolution, weight) do you guys want us to produce @nadinekuo @RD211?
Mat::fread
overload for purely grayscale loading