DigitalGlobe / gbdxtools

(Deprecated) Python SDK for using GBDX
MIT License
74 stars 57 forks source link

S3Images of Landsat data don't reproject #443

Closed drwelby closed 6 years ago

drwelby commented 6 years ago

The S3Image example in the docs:

img = S3Image('landsat-pds/c1/L8/139/045/LC08_L1TP_139045_20170304_20170316_01_T1/LC08_L1TP_139045_20170304_20170316_01_T1_B3.TIF', proj="EPSG:4326")

fails in the RDA orthorectify operation because the imagery is already orthorectified. It would need to use the reproject operator instead.

See graph bdf1e705f440dc3fb19e2983a3334c7bcd14ecbf7400eca539c6c3ad2541361e

It's not clear how to handle discovering if the image is orthorectified or not. For the example it would be sufficient to drop the proj keyword.

chelm commented 6 years ago

@drwelby Its a tricky issue. My guess is that we'd need a flag on the constructor that can control it. It decreases the usability of the class, but provides a path for a user to take when an error occurs.

Or should take the approach of assuming the image in s3 is projected already? so just always use reproject? let the user specify whether or not its an unprojected image?

drwelby commented 6 years ago

What are the use cases? I only know of the Landsat example from the docs.

chelm commented 6 years ago

So the use case of s3Image is to perform a gdal read on a random image living in s3. So primarily this is useful for GBDX users that produce a geotiff from some task in a workflow. They can access the tif from s3 directly via RDA, really powerful and really important.

The use case of reading Landsat from its buckets is not the primary use though. But i still feel like we can/should somehow expect that the tifs they access are projected already.

drwelby commented 6 years ago

Addressed in #453