Skip to content
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

Feature s2 cloud score #28

Merged
merged 35 commits into from
Oct 20, 2024
Merged

Feature s2 cloud score #28

merged 35 commits into from
Oct 20, 2024

Conversation

dugalh
Copy link
Collaborator

@dugalh dugalh commented Oct 20, 2024

Features:

  • Add Sentinel-2 Cloud Score+ mask method (cloud-score).
  • Change default Sentinel-2 masking method to cloud-score.
  • Revert to multi-threaded overviews on download.
  • Remove lock on calls to ee.Image.getDownloadUrl() for tile download.
  • Download tiles as GeoTIFFs rather than zipped GeoTIFFs.
  • Simplify pixel grid maintenance when exporting.
  • Change image date property to be time zone aware, and update deprecated calls to datetime.utcfromtimestamp().
  • Deprecate Sentinel-2 cloud-prob and qa masking methods.

Fixes:

  • Correct cast direction for Sentinel-2 cloud-prob and qa shadow masking.
  • Provide image scale property in meters for all CRSs.
  • Allow export of images with positive y-axis geo-transforms on the source pixel grid.
  • Fix resampling for harmonised Sentinel-2 images to use minimum scale projection.

Packaging:

  • Update required python version to 3.8.
  • Pin Rasterio & earthengine-api versions for multithreaded overviews / ee.Image.getDownloadUrl() calls.

Docs:

  • Updates to use harmonised Sentinel-2 images and cloud-score masking.

- prepare for export internally with crs_transform & shape
- intersect export region with footprint
- fix issue exporting on grids with non-standard transform
- revert to multi-threaded overviews
- Remove unnecessary bounds property
- Add min scale index property
- Change date to zone aware
- Change scale property to xy average
- Revert to ee.Image.prepare_for_export()
- Default export scale to EE scale in meters
- Remove requirement for scale arg with EPSG:4326
- Remove unneeded index property.
- Retrieve band scales & image info in one call.
- add --score and --cs-band config options
- update config help for cloud-score mask method
- remove callbacks & expansion for updated enums
- make enum options case sensitive
- add CloudScoreBand
- update CloudMaskMethod with cloud-score
- override __str__() & __repr__()
- Add cloud score masking
- Refactor S2 masking
- Fix S2 shadow cast angle
- Deprecate qa & cloud-prob masking.
- Change default S2 arg values
- Update docstrings
- Test cloud score masking.
- Change to harmonized fixtures.
- Use harmonized S2 fixtures
- Update tests & fixtures for cloud-score masking
- Simplify resampling std dev stats
- Fix redundant cloudless portion normalisation
Copy link

codecov bot commented Oct 20, 2024

Codecov Report

Attention: Patch coverage is 93.71728% with 12 lines in your changes missing coverage. Please review.

Project coverage is 90.89%. Comparing base (0f53160) to head (9263be8).
Report is 36 commits behind head on main.

Files with missing lines Patch % Lines
geedim/enums.py 66.66% 11 Missing ⚠️
geedim/schema.py 50.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #28      +/-   ##
==========================================
- Coverage   91.73%   90.89%   -0.85%     
==========================================
  Files          13       13              
  Lines        1622     1636      +14     
==========================================
- Hits         1488     1487       -1     
- Misses        134      149      +15     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@dugalh dugalh merged commit 4d25b89 into main Oct 20, 2024
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant