[Enhancement] Add name-based alignment workflow for EarthDaily Sentinel-2 biophysical products#626
[Enhancement] Add name-based alignment workflow for EarthDaily Sentinel-2 biophysical products#626robmarkcole merged 6 commits intomasterfrom
Conversation
… capabilities and update documentation
|
@claude can you review this PR? |
|
Claude finished @favyen2's task in 2m 45s —— View job PR Review: Biophysical Source Layer Matching
Overall this is a clean, well-motivated feature. The design pattern — adding a Issues1. The original table entry read "requires EarthDaily credentials"; the new entry removes that. Credentials are still required and this is important context for users comparing data sources. Suggest: "LAI/FAPAR/FCOVER, can match exact Sentinel-2 source scenes, requires EarthDaily credentials". 2. Unreachable if self.match_source_item_template is None:
raise ValueError("match_source_item_template is not configured")
3. Redundant length check in # In Biophysical.get_items_for_windows:
if len(windows) != len(geometries):
raise ValueError("windows and geometries must have the same length")The base class 4. Redundant bounds check in if source_layer_data.group_time_ranges is not None and group_idx < len(
source_layer_data.group_time_ranges
):
5. Whole-group skip when any item in the source group is missing ( if missing_item_names:
logger.warning(...)
continue # skips entire source groupIf a source group contains multiple Sentinel-2 items and even one has no corresponding biophysical product, the entire matched group is discarded. This may be the right behavior (biophysical products typically correspond 1-to-1 with scenes, and a partial group is ambiguous), but it's worth documenting the group semantics here or in the docstring — especially since a user could construct a config with Positive Notes
|
|
I think I understand the use case, but I think it is too specific while requiring too many use cases to support at this time. Instead I would suggest either:
|
|
I agree option 2 is the better fit. The new workflow keeps Sentinel-2 and biophysical products as separate EarthDaily data sources. Users prepare the dataset normally, with separate layers for sentinel2, lai, fapar, and/or fcover. After rslearn dataset prepare and before materialization, they run The script rewrites the prepared biophysical item groups so they follow the Sentinel-2 item group order. It matches by EarthDaily’s deterministic item naming pattern:
By default, the script uses: |
favyen2
left a comment
There was a problem hiding this comment.
This looks good, just need to revert changes to data_source.py, manage.py, and test_manage.py.
…usage in prepare_dataset_windows
Close #625