|
8 | 8 | import dask.dataframe as dd |
9 | 9 | from loguru import logger |
10 | 10 |
|
11 | | -from nsidc.iceflow.data.fetch import download_iceflow_results, find_iceflow_data |
12 | | -from nsidc.iceflow.data.models import ( |
13 | | - ALL_DATASETS, |
14 | | - BoundingBoxLike, |
15 | | - Dataset, |
16 | | - IceflowDataFrame, |
17 | | - TemporalRange, |
18 | | -) |
19 | 11 | from nsidc.iceflow.data.read import read_iceflow_datafiles |
| 12 | +from nsidc.iceflow.data.supported_datasets import ALL_SUPPORTED_DATASETS |
20 | 13 | from nsidc.iceflow.itrf.converter import transform_itrf |
21 | 14 |
|
22 | 15 |
|
23 | | -def fetch_iceflow_df( |
24 | | - *, |
25 | | - bounding_box: BoundingBoxLike, |
26 | | - temporal: TemporalRange, |
27 | | - datasets: list[Dataset] = ALL_DATASETS, |
28 | | - output_dir: Path, |
29 | | - # TODO: also add option for target epoch!! |
30 | | - output_itrf: str | None = None, |
31 | | -) -> IceflowDataFrame: |
32 | | - """Search for data matching parameters and return an IceflowDataframe. |
33 | | -
|
34 | | - Optionally transform data to the given ITRF for consistency. |
35 | | -
|
36 | | - Note: a potentially large amount of data may be returned, especially if the |
37 | | - user requests a large spatial/temporal area across multiple datasets. The |
38 | | - result may not even fit in memory! |
39 | | -
|
40 | | - Consider using `make_iceflow_parquet` to store downloaded data in parquet |
41 | | - format. |
42 | | - """ |
43 | | - |
44 | | - iceflow_search_reuslts = find_iceflow_data( |
45 | | - bounding_box=bounding_box, |
46 | | - temporal=temporal, |
47 | | - datasets=datasets, |
48 | | - ) |
49 | | - |
50 | | - downloaded_files = download_iceflow_results( |
51 | | - iceflow_search_results=iceflow_search_reuslts, |
52 | | - output_dir=output_dir, |
53 | | - ) |
54 | | - |
55 | | - iceflow_df = read_iceflow_datafiles(downloaded_files) |
56 | | - |
57 | | - if output_itrf is not None: |
58 | | - iceflow_df = transform_itrf( |
59 | | - data=iceflow_df, |
60 | | - target_itrf=output_itrf, |
61 | | - ) |
62 | | - |
63 | | - return iceflow_df |
64 | | - |
65 | | - |
66 | 16 | def make_iceflow_parquet( |
67 | 17 | *, |
68 | 18 | data_dir: Path, |
@@ -97,7 +47,7 @@ def make_iceflow_parquet( |
97 | 47 |
|
98 | 48 | all_subdirs = [ |
99 | 49 | data_dir / ds.subdir_name |
100 | | - for ds in ALL_DATASETS |
| 50 | + for ds in ALL_SUPPORTED_DATASETS |
101 | 51 | if (data_dir / ds.subdir_name).is_dir() |
102 | 52 | ] |
103 | 53 | for subdir in all_subdirs: |
|
0 commit comments