grdwindinversion 0.3.8__tar.gz → 0.3.9__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. {grdwindinversion-0.3.8/grdwindinversion.egg-info → grdwindinversion-0.3.9}/PKG-INFO +1 -1
  2. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/grdwindinversion/config_prod_v3.yaml +43 -0
  3. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/grdwindinversion/inversion.py +19 -7
  4. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9/grdwindinversion.egg-info}/PKG-INFO +1 -1
  5. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/tests/test_simple_functions.py +7 -7
  6. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/.editorconfig +0 -0
  7. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/.github/dependabot.yml +0 -0
  8. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/.github/workflows/build.yml +0 -0
  9. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/.github/workflows/ci.yml +0 -0
  10. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/.github/workflows/publish.yml +0 -0
  11. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/.gitignore +0 -0
  12. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/.pre-commit-config.yaml +0 -0
  13. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/AUTHORS.rst +0 -0
  14. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/CONTRIBUTING.rst +0 -0
  15. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/HISTORY.rst +0 -0
  16. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/LICENSE +0 -0
  17. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/MANIFEST.in +0 -0
  18. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/Makefile +0 -0
  19. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/README.md +0 -0
  20. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/ci/requirements/docs.yaml +0 -0
  21. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/ci/requirements/environment.yaml +0 -0
  22. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/docs/Makefile +0 -0
  23. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/docs/_static/css/grdwindinversion.css +0 -0
  24. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/docs/algorithm.rst +0 -0
  25. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/docs/authors.rst +0 -0
  26. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/docs/conf.py +0 -0
  27. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/docs/contributing.rst +0 -0
  28. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/docs/examples/streaks-display.ipynb +0 -0
  29. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/docs/examples/wind-inversion-from-grd.ipynb +0 -0
  30. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/docs/history.rst +0 -0
  31. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/docs/index.rst +0 -0
  32. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/docs/installation.rst +0 -0
  33. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/docs/make.bat +0 -0
  34. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/docs/modules.rst +0 -0
  35. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/docs/usage.rst +0 -0
  36. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/grdwindinversion/.github/ISSUE_TEMPLATE.md +0 -0
  37. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/grdwindinversion/.gitignore +0 -0
  38. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/grdwindinversion/__init__.py +0 -0
  39. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/grdwindinversion/config_prod.yaml +0 -0
  40. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/grdwindinversion/config_prod_recal.yaml +0 -0
  41. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/grdwindinversion/config_prod_recal_streaks_nrcsmod.yaml +0 -0
  42. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/grdwindinversion/config_prod_streaks.yaml +0 -0
  43. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/grdwindinversion/config_prod_streaks_nrcsmod.yaml +0 -0
  44. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/grdwindinversion/data_config.yaml +0 -0
  45. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/grdwindinversion/gradientFeatures.py +0 -0
  46. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/grdwindinversion/load_config.py +0 -0
  47. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/grdwindinversion/main.py +0 -0
  48. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/grdwindinversion/utils.py +0 -0
  49. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/grdwindinversion/utils_memory.py +0 -0
  50. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/grdwindinversion.egg-info/SOURCES.txt +0 -0
  51. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/grdwindinversion.egg-info/dependency_links.txt +0 -0
  52. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/grdwindinversion.egg-info/entry_points.txt +0 -0
  53. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/grdwindinversion.egg-info/requires.txt +0 -0
  54. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/grdwindinversion.egg-info/top_level.txt +0 -0
  55. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/pyproject.toml +0 -0
  56. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/recipe/meta.yaml +0 -0
  57. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/requirements_dev.txt +0 -0
  58. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/requirements_doc.txt +0 -0
  59. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/setup.cfg +0 -0
  60. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/tests/__init__.py +0 -0
  61. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/tests/config_test.yaml +0 -0
  62. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/tests/listing_rcm_safe.txt +0 -0
  63. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/tests/test_getOutputName.py +0 -0
  64. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/tests/test_grdwindinversion_ci.py +0 -0
  65. {grdwindinversion-0.3.8 → grdwindinversion-0.3.9}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: grdwindinversion
3
- Version: 0.3.8
3
+ Version: 0.3.9
4
4
  Summary: Package to perform Wind inversion from GRD Level-1 SAR images
5
5
  Author-email: Antoine Grouazel <antoine.grouazel@ifremer.fr>
6
6
  License: MIT
@@ -42,6 +42,49 @@ S1B:
42
42
  wspd_step: 0.1
43
43
  phi_step: 1.0
44
44
  resolution: "high"
45
+
46
+ S1C:
47
+ GMF_HH_NAME: "nc_lut_gmf_cmod5n_Rhigh_hh_mouche1"
48
+ GMF_VV_NAME: "gmf_cmod5n"
49
+ GMF_VH_NAME: "gmf_s1_v2"
50
+ dsig_VH_NAME: "gmf_s1_v2"
51
+ dsig_cr_step: "nrcs"
52
+ apply_flattening: True
53
+ S1_EW_calG>20190731:
54
+ GMF_HH_NAME: "nc_lut_gmf_cmod5n_Rhigh_hh_mouche1"
55
+ GMF_VV_NAME: "gmf_cmod5n"
56
+ GMF_VH_NAME: "gmf_s1_v3_ew_rec"
57
+ dsig_VH_NAME: "dsig_wspd_s1_ew_rec_v3"
58
+ dsig_cr_step: "wspd"
59
+ apply_flattening: True
60
+ recalibration: False
61
+ ancillary: "ecmwf"
62
+ inc_step: 0.1
63
+ wspd_step: 0.1
64
+ phi_step: 1.0
65
+ resolution: "high"
66
+
67
+ S1D:
68
+ GMF_HH_NAME: "nc_lut_gmf_cmod5n_Rhigh_hh_mouche1"
69
+ GMF_VV_NAME: "gmf_cmod5n"
70
+ GMF_VH_NAME: "gmf_s1_v2"
71
+ dsig_VH_NAME: "gmf_s1_v2"
72
+ dsig_cr_step: "nrcs"
73
+ apply_flattening: True
74
+ S1_EW_calG>20190731:
75
+ GMF_HH_NAME: "nc_lut_gmf_cmod5n_Rhigh_hh_mouche1"
76
+ GMF_VV_NAME: "gmf_cmod5n"
77
+ GMF_VH_NAME: "gmf_s1_v3_ew_rec"
78
+ dsig_VH_NAME: "dsig_wspd_s1_ew_rec_v3"
79
+ dsig_cr_step: "wspd"
80
+ apply_flattening: True
81
+ recalibration: False
82
+ ancillary: "ecmwf"
83
+ inc_step: 0.1
84
+ wspd_step: 0.1
85
+ phi_step: 1.0
86
+ resolution: "high"
87
+
45
88
  RS2:
46
89
  GMF_HH_NAME: "nc_lut_gmf_cmod5n_Rhigh_hh_mouche1"
47
90
  GMF_VV_NAME: "gmf_cmod5n"
@@ -54,6 +54,10 @@ def getSensorMetaDataset(filename):
54
54
  return "S1A", "SENTINEL-1 A", xsar.Sentinel1Meta, xsar.Sentinel1Dataset
55
55
  elif "S1B" in filename:
56
56
  return "S1B", "SENTINEL-1 B", xsar.Sentinel1Meta, xsar.Sentinel1Dataset
57
+ elif "S1C" in filename:
58
+ return "S1C", "SENTINEL-1 C", xsar.Sentinel1Meta, xsar.Sentinel1Dataset
59
+ elif "S1D" in filename:
60
+ return "S1D", "SENTINEL-1 D", xsar.Sentinel1Meta, xsar.Sentinel1Dataset
57
61
  elif "RS2" in filename:
58
62
  return "RS2", "RADARSAT-2", xsar.RadarSat2Meta, xsar.RadarSat2Dataset
59
63
  elif "RCM1" in filename:
@@ -65,7 +69,7 @@ def getSensorMetaDataset(filename):
65
69
 
66
70
  else:
67
71
  raise ValueError(
68
- "must be S1A|S1B|RS2|RCM1|RCM2|RCM3, got filename %s" % filename
72
+ "must be S1A|S1B|S1C|S1D|RS2|RCM1|RCM2|RCM3, got filename %s" % filename
69
73
  )
70
74
 
71
75
 
@@ -96,7 +100,7 @@ def getOutputName(
96
100
  basename = os.path.basename(input_file)
97
101
  basename_match = basename
98
102
 
99
- if sensor == "S1A" or sensor == "S1B":
103
+ if sensor == "S1A" or sensor == "S1B" or sensor == "S1C" or sensor == "S1D":
100
104
  regex = re.compile(
101
105
  "(...)_(..)_(...)(.)_(.)(.)(..)_(........T......)_(........T......)_(......)_(......)_(....).SAFE"
102
106
  )
@@ -143,7 +147,7 @@ def getOutputName(
143
147
  MISSIONID, DATA1, DATA2, DATA3, SWATH, DATE, TIME, POLARIZATION, LAST = (
144
148
  match.groups()
145
149
  )
146
- new_format = f"{MISSIONID.lower()}-{SWATH.lower()}-owi-{convert_polarization_name(POLARIZATION)}-{meta_start_date.lower()}-{meta_stop_date.lower()}-_____-_____.nc"
150
+ new_format = f"{MISSIONID.lower()}-{SWATH.lower()}-owi-{convert_polarization_name(POLARIZATION)}-{meta_start_date.lower()}-{meta_stop_date.lower()}-xxxxx-xxxxx.nc"
147
151
  elif sensor == "RCM":
148
152
 
149
153
  regex = re.compile(
@@ -160,11 +164,11 @@ def getOutputName(
160
164
  MISSIONID, DATA1, DATA2, DATA3, SWATH, DATE, TIME, POLARIZATION, PRODUCT = (
161
165
  match.groups()
162
166
  )
163
- new_format = f"{MISSIONID.lower()}-{SWATH.lower()}-owi-{convert_polarization_name(POLARIZATION)}-{meta_start_date.lower()}-{meta_stop_date.lower()}-_____-_____.nc"
167
+ new_format = f"{MISSIONID.lower()}-{SWATH.lower()}-owi-{convert_polarization_name(POLARIZATION)}-{meta_start_date.lower()}-{meta_stop_date.lower()}-xxxxx-xxxxx.nc"
164
168
 
165
169
  else:
166
170
  raise ValueError(
167
- "sensor must be S1A|S1B|RS2|RCM, got sensor %s" % sensor)
171
+ "sensor must be S1A|S1B|S1C|RS2|RCM, got sensor %s" % sensor)
168
172
 
169
173
  if subdir:
170
174
  out_file = os.path.join(outdir, basename, new_format)
@@ -953,8 +957,16 @@ def preprocess(
953
957
  copol_gmf = "HH"
954
958
  crosspol_gmf = "VH"
955
959
 
956
- cond_aux_cal = (sensor == "S1A" or sensor == "S1B") and (
957
- xsar_dataset.dataset.attrs["aux_cal"].split("_")[-1][1:9] > '20190731')
960
+ if (sensor == "S1A" or sensor == "S1B" or sensor == "S1C" or sensor == "S1D") and xsar_dataset.dataset.attrs["aux_cal"] is None:
961
+ raise ValueError(
962
+ "aux_cal attribute is None, xsar_dataset.dataset.attrs['aux_cal'] must be set to a valid value"
963
+ )
964
+ cond_aux_cal = (
965
+ (sensor == "S1A" or sensor == "S1B" or sensor == "S1C" or sensor == "S1D")
966
+ and xsar_dataset.dataset.attrs["aux_cal"] is not None
967
+ and xsar_dataset.dataset.attrs["aux_cal"].split("_")[-1][1:9] > "20190731"
968
+ )
969
+
958
970
  if cond_aux_cal and xr_dataset.attrs["swath"] == "EW" and "S1_EW_calG>20190731" in config.keys():
959
971
  model_co = config["S1_EW_calG>20190731"]["GMF_" + copol_gmf + "_NAME"]
960
972
  model_cross = config["S1_EW_calG>20190731"]["GMF_" +
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: grdwindinversion
3
- Version: 0.3.8
3
+ Version: 0.3.9
4
4
  Summary: Package to perform Wind inversion from GRD Level-1 SAR images
5
5
  Author-email: Antoine Grouazel <antoine.grouazel@ifremer.fr>
6
6
  License: MIT
@@ -19,15 +19,15 @@ safes = ['S1A_IW_GRDH_1SDV_20210909T130650_20210909T130715_039605_04AE83_C34F.SA
19
19
  outfiles = ['s1a-iw-owi-dv-20210909t130650-20210909t130715-039605-04AE83.nc',
20
20
  's1a-iw-owi-dh-20210101t102321-20210101t102346-035943-0435C4.nc',
21
21
  's1a-iw-owi-sv-20170105t225242-20170105t225311-014703-017ED0.nc',
22
- 'rcm1-sclnd-owi-dv-20230930t214011-20230930t214127-_____-_____.nc',
23
- 'rcm2-sclna-owi-dv-20240125t195611-20240125t195726-_____-_____.nc',
24
- 'rs2-scwa-owi-dv-20220904t093402-20220904t093518-_____-_____.nc',
22
+ 'rcm1-sclnd-owi-dv-20230930t214011-20230930t214127-xxxxx-xxxxx.nc',
23
+ 'rcm2-sclna-owi-dv-20240125t195611-20240125t195726-xxxxx-xxxxx.nc',
24
+ 'rs2-scwa-owi-dv-20220904t093402-20220904t093518-xxxxx-xxxxx.nc',
25
25
  's1a-ew-owi-dv-20230908t092521-20230908t092624-050234-060BF1.nc',
26
26
  's1a-iw-owi-dv-20150315t053621-20150315t053646-005038-006529.nc',
27
27
  's1b-iw-owi-dv-20171117t164022-20171117t164047-008324-00EBB3.nc',
28
- 'rcm3-sclna-owi-dv-20230303t063449-20230303t063629-_____-_____.nc',
29
- 'rs2-scwa-owi-dv-20160912t212842-20160912t212958-_____-_____.nc',
30
- 'rs2-scwa-owi-sv-20160912t212842-20160912t212958-_____-_____.nc',]
28
+ 'rcm3-sclna-owi-dv-20230303t063449-20230303t063629-xxxxx-xxxxx.nc',
29
+ 'rs2-scwa-owi-dv-20160912t212842-20160912t212958-xxxxx-xxxxx.nc',
30
+ 'rs2-scwa-owi-sv-20160912t212842-20160912t212958-xxxxx-xxxxx.nc',]
31
31
 
32
32
  sensors = ['S1A', 'S1A', 'S1A', 'RCM', 'RCM',
33
33
  'RS2', 'S1A', 'S1A', 'S1B', 'RCM', 'RS2', 'RS2']
@@ -101,6 +101,6 @@ def test_function_getOutputName():
101
101
 
102
102
  assert output == result, f"Expected {output}, got {result}"
103
103
 
104
-
104
+
105
105
  if __name__ == '__main__':
106
106
  test_function_getSensorMetaDataset()