-
Notifications
You must be signed in to change notification settings - Fork 15
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
copernicus data provider #972
base: main
Are you sure you want to change the base?
Conversation
… into copernicus-provider
Co-authored-by: Christian Beilschmidt <christian.beilschmidt@geoengine.de>
Co-authored-by: Christian Beilschmidt <christian.beilschmidt@geoengine.de>
bb77e29
to
5c4538e
Compare
|
||
// TODO: are these bands for all sentinel 2 products? | ||
#[derive(Debug, Clone, Copy, EnumString, strum::Display, EnumIter)] | ||
pub enum Sentinel2Band { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we also need the SCL band. Without that we can't do cloud free
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
but which resolution? See my other comment, it is available in 2 subdatasets/resolution.
B08, | ||
B08A, | ||
B09, | ||
// B10, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why not include B10?
edit: sooooo B10 is in the L1 product but not in the L12 product beacause it is needed for correction only. Can you add that and maybe separate between products?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
// B10, | ||
B11, | ||
B12, | ||
// TODO: AOT, CLD, etc. but they have multiple resolutions |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
for geo engine we need 3 stacked layers for 10m, 20m and 60m. Are there really bands with multiple resolutions?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
AOT, CLD, SCL, SNW, WVP are contained in both subdataset 2 with 20m resolution and subdataset 3 with 60m resolution. idk what to do about that.
|
||
#[allow(clippy::unused_self)] // might need to be used in the future to distinguish between bands | ||
pub fn data_type(self) -> RasterDataType { | ||
RasterDataType::U16 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SCL is u8 but thats not really a problem (yet)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
are you sure?
Band 5 Block=128x128 Type=UInt16, ColorInterp=Undefined
Description = SCL, Scene Classification
Categories:
0: NODATA
1: SATURATED_DEFECTIVE
2: DARK_FEATURE_SHADOW
3: CLOUD_SHADOW
4: VEGETATION
5: NOT_VEGETATED
6: WATER
7: UNCLASSIFIED
8: CLOUD_MEDIUM_PROBA
9: CLOUD_HIGH_PROBA
10: THIN_CIRRUS
11: SNOW_ICE
Metadata:
BANDNAME=SCL
} | ||
|
||
#[derive(Debug, Clone)] | ||
pub struct Sentinel2Metadata { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
maybe name it CopernicusSentinel2Metadata or something like this because there might be more Sentinel2 sources?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the code is in a submodule, so it should be fine? If we have multiple sources we can use the qualified name
self.zone.epsg_code(), | ||
) | ||
.into(), | ||
time: None, // TODO: specify time (2015, open end/current date)? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
) | ||
.into(), | ||
time: None, // TODO: specify time (2015, open end/current date)? | ||
bbox: None, // TODO: exclude parts that are never visited by the satellite? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
use the UTM Zone box here
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CHANGELOG.md
if knowledge of this change could be valuable to users.Here is a brief summary of what I did: