Skip to content

Commit 5174aef

Browse files
Read out scientific notation properly, add values unit test for Doris5
1 parent 5d0f0dc commit 5174aef

2 files changed

Lines changed: 49 additions & 20 deletions

File tree

sarxarray/conf.py

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,16 @@
1212
"sar_processor": r"SAR_PROCESSOR:\s+(.+)",
1313
"product_type": r"Product type specifier:\s+(.+)",
1414
"pass_direction": r"Scene identification:.*?(ASCENDING|DESCENDING)",
15-
"wavelength": r"Radar_wavelength \(m\):\s+([\d\.E\+\-]+)",
15+
"wavelength": r"Radar_wavelength \(m\):\s+([\d\.Ee\+\-]+)",
1616
"pulse_repetition_frequency": (
17-
r"Pulse_Repetition_Frequency \(computed, Hz\):\s+([\d\.E\+\-]+)"
17+
r"Pulse_Repetition_Frequency \(computed, Hz\):\s+([\d\.Ee\+\-]+)"
1818
),
19-
"total_azimuth_bandwidth": r"Total_azimuth_band_width \(Hz\):\s+([\d\.E\+\-]+)",
19+
"total_azimuth_bandwidth": r"Total_azimuth_band_width \(Hz\):\s+([\d\.Ee\+\-]+)",
2020
"first_range_time": (
21-
r"Range_time_to_first_pixel \(2way\) \(ms\):\s+([\d\.E\+\-]+)"
21+
r"Range_time_to_first_pixel \(2way\) \(ms\):\s+([\d\.Ee\+\-]+)"
2222
),
23-
"range_sampling_rate": r"Range_sampling_rate \(computed, MHz\):\s+([\d\.E\+\-]+)",
24-
"total_range_bandwidth": r"Total_range_band_width \(MHz\):\s+([\d\.E\+\-]+)",
23+
"range_sampling_rate": r"Range_sampling_rate \(computed, MHz\):\s+([\d\.Ee\+\-]+)",
24+
"total_range_bandwidth": r"Total_range_band_width \(MHz\):\s+([\d\.Ee\+\-]+)",
2525
"weighting_azimuth": r"Weighting_azimuth:\s+(.+)",
2626
"weighting_range": r"Weighting_range:\s+(.+)",
2727
"first_azimuth_time": r"First_pixel_azimuth_time \(UTC\):\s+(.+)",
@@ -34,31 +34,31 @@
3434
"swath": r"SWATH:\s+(.+)",
3535
"image_mode": r"IMAGE_MODE:\s+(.+)",
3636
"polarisation": r"polarisation:\s+(.+)",
37-
"range_pixel_spacing": r"rangePixelSpacing:\s+([\d\.E\+\-]+)",
38-
"azimuth_pixel_spacing": r"azimuthPixelSpacing:\s+([\d\.E\+\-]+)",
39-
"radar_frequency": r"RADAR_FREQUENCY \(HZ\):\s+([\d\.E\+\-]+)",
37+
"range_pixel_spacing": r"rangePixelSpacing:\s+([\d\.Ee\+\-]+)",
38+
"azimuth_pixel_spacing": r"azimuthPixelSpacing:\s+([\d\.Ee\+\-]+)",
39+
"radar_frequency": r"RADAR_FREQUENCY \(HZ\):\s+([\d\.Ee\+\-]+)",
4040
"sensor_platform": r"Sensor platform mission identifer:\s+(.+)",
41-
"wavelength": r"Radar_wavelength \(m\):\s+([\d\.E\+\-]+)",
41+
"wavelength": r"Radar_wavelength \(m\):\s+([\d\.Ee\+\-]+)",
4242
"pulse_repetition_frequency_raw": (
43-
r"Pulse_Repetition_Frequency_raw_data\(TOPSAR\):\s+([\d\.E\+\-]+)"
43+
r"Pulse_Repetition_Frequency_raw_data\(TOPSAR\):\s+([\d\.Ee\+\-]+)"
4444
),
4545
"pulse_repetition_frequency": (
46-
r"Pulse_Repetition_Frequency \(computed, Hz\):\s+([\d\.E\+\-]+)"
46+
r"Pulse_Repetition_Frequency \(computed, Hz\):\s+([\d\.Ee\+\-]+)"
4747
),
4848
"first_azimuth_time": r"First_pixel_azimuth_time \(UTC\):\s+(.+)",
49-
"azimuth_time_interval": r"Azimuth_time_interval \(s\):\s+([\d\.E\+\-]+)",
50-
"total_azimuth_bandwidth": r"Total_azimuth_band_width \(Hz\):\s+([\d\.E\+\-]+)",
49+
"azimuth_time_interval": r"Azimuth_time_interval \(s\):\s+([\d\.Ee\+\-]+)",
50+
"total_azimuth_bandwidth": r"Total_azimuth_band_width \(Hz\):\s+([\d\.Ee\+\-]+)",
5151
"weighting_azimuth": r"Weighting_azimuth:\s+(.+)",
5252
"first_range_time": (
53-
r"Range_time_to_first_pixel \(2way\) \(ms\):\s+([\d\.E\+\-]+)"
53+
r"Range_time_to_first_pixel \(2way\) \(ms\):\s+([\d\.Ee\+\-]+)"
5454
),
55-
"range_sampling_rate": r"Range_sampling_rate \(computed, MHz\):\s+([\d\.E\+\-]+)",
56-
"total_range_bandwidth": r"Total_range_band_width \(MHz\):\s+([\d\.E\+\-]+)",
55+
"range_sampling_rate": r"Range_sampling_rate \(computed, MHz\):\s+([\d\.Ee\+\-]+)",
56+
"total_range_bandwidth": r"Total_range_band_width \(MHz\):\s+([\d\.Ee\+\-]+)",
5757
"weighting_range": r"Weighting_range:\s+(.+)",
5858
"dataformat": r"Dataformat:\s+(.+)",
59-
"deramp": r"deramp:\s+([\d\.E\+\-]+)",
60-
"reramp": r"reramp:\s+([\d\.E\+\-]+)",
61-
"esd_correct": r"ESD_correct:\s+([\d\.E\+\-]+)",
59+
"deramp": r"deramp:\s+([\d\.Ee\+\-]+)",
60+
"reramp": r"reramp:\s+([\d\.Ee\+\-]+)",
61+
"esd_correct": r"ESD_correct:\s+([\d\.Ee\+\-]+)",
6262
"orbit_txyz": (
6363
r"(\d+)\s+([-+]?\d+\.\d+(?:\.\d+)?)\s+([-+]?\d+"
6464
r"\.\d+(?:\.\d+)?)\s+([-+]?\d+\.\d+(?:\.\d+)?)"

tests/test_io.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,3 +247,32 @@ def test_read_metadata_doris5_onefile(self, res_files_doris5, caplog):
247247
elif key in META_INT_KEYS:
248248
assert isinstance(metadata[key], int)
249249
assert np.isscalar(metadata["first_azimuth_time"])
250+
251+
def test_read_metadata_doris5_onefile_values(self, res_files_doris5):
252+
metadata = sarxarray.read_metadata(res_files_doris5[0], driver="doris5")
253+
assert metadata["sar_processor"] == "Sentinel-1B"
254+
assert metadata["product_type"] == "S1B"
255+
assert metadata["pass_direction"] == "Ascending"
256+
assert metadata["swath"] == "IW3"
257+
assert metadata["image_mode"] == "IW"
258+
assert metadata["polarisation"] == "VV"
259+
assert np.isclose(metadata["range_pixel_spacing"], 2.329562e+00)
260+
assert np.isclose(metadata["azimuth_pixel_spacing"], 1.385502e+01)
261+
assert np.isclose(metadata["radar_frequency"], 5.405000454334350e+09)
262+
assert metadata["sensor_platform"] == "S1B"
263+
assert np.isclose(metadata["wavelength"], 0.055465760)
264+
assert isinstance(metadata["first_azimuth_time"], np.datetime64)
265+
assert np.isclose(metadata["azimuth_time_interval"], 2.055556299999998e-03)
266+
assert np.isclose(metadata["total_azimuth_bandwidth"], 3.140000000000000e+02)
267+
assert metadata["weighting_azimuth"] == "Hamming"
268+
assert np.isclose(metadata["first_range_time"], 6.013024343276740/1000)
269+
assert np.isclose(metadata["range_sampling_rate"], 64.345238126 * 1_000_000)
270+
assert np.isclose(metadata["total_range_bandwidth"], 42.789918403 * 1_000_000)
271+
assert metadata["weighting_range"] == "Hamming"
272+
assert metadata["dataformat"] == "tiff"
273+
assert np.isclose(metadata["deramp"], 0)
274+
assert np.isclose(metadata["reramp"], 0)
275+
assert np.isclose(metadata["esd_correct"], 0)
276+
assert np.isclose(metadata["scene_centre_latitude"], 53.54352136900687)
277+
assert np.isclose(metadata["scene_centre_longitude"], 6.557386154885761)
278+
assert np.allclose(metadata["orbit_txyz"][0],[62569, 4954320.931616273, 78580.69269184131, 5042109.736565054])

0 commit comments

Comments
 (0)