Thanks for your suggestions.
I tried to investigate better the structure of three files where I only applied a crop over an area of interest wiht HARP. The files are the L1B B2, B3 and L2 SO2_OFFL products for the same date. With the following code:
print(b2, b3, so2)
for i in range(0, 1):
print(np.array(b2['datetime'][i]), np.array(b3['datetime'][i]), np.array(so2['datetime_start'][i]))
print(np.array(b2['scan_subindex'][i]), np.array(b3['scan_subindex'][i]), np.array(so2['scan_subindex'][i]))
print(np.array(b2['latitude'][i]), np.array(b3['latitude'][i]), np.array(so2['latitude'][i]))
print(np.array(b2['longitude'][i]), np.array(b3['longitude'][i]), np.array(so2['longitude'][i]))
I obtain the following results:
Dimensions: (independent_4: 4, spectral: 497, time: 19035)
Dimensions without coordinates: independent_4, spectral, time
Data variables:
scan_subindex (time) int16 ...
datetime (time) datetime64[ns] ...
orbit_index int32 ...
latitude (time) float32 ...
longitude (time) float32 ...
latitude_bounds (time, independent_4) float32 ...
longitude_bounds (time, independent_4) float32 ...
sensor_latitude (time) float32 ...
sensor_longitude (time) float32 ...
sensor_altitude (time) float32 ...
solar_zenith_angle (time) float32 ...
solar_azimuth_angle (time) float32 ...
sensor_zenith_angle (time) float32 ...
sensor_azimuth_angle (time) float32 ...
wavelength (time, spectral) float32 ...
photon_radiance (time, spectral) float32 ...
index (time) int32 ...
Attributes:
Conventions: HARP-1.0
datetime_start: 7110.123880706018
datetime_stop: 7110.125530659721
source_product: S5P_OFFL_L1B_RA_BD2_20190620T020303_20190620T034433_0872...
history: 2021-02-08T22:16:48Z [harp-1.11] harp.import_product('S5... <xarray.Dataset>
Dimensions: (independent_4: 4, spectral: 497, time: 19138)
Dimensions without coordinates: independent_4, spectral, time
Data variables:
scan_subindex (time) int16 ...
datetime (time) datetime64[ns] ...
orbit_index int32 ...
latitude (time) float32 ...
longitude (time) float32 ...
latitude_bounds (time, independent_4) float32 ...
longitude_bounds (time, independent_4) float32 ...
sensor_latitude (time) float32 ...
sensor_longitude (time) float32 ...
sensor_altitude (time) float32 ...
solar_zenith_angle (time) float32 ...
solar_azimuth_angle (time) float32 ...
sensor_zenith_angle (time) float32 ...
sensor_azimuth_angle (time) float32 ...
wavelength (time, spectral) float32 ...
photon_radiance (time, spectral) float32 ...
index (time) int32 ...
Attributes:
Conventions: HARP-1.0
datetime_start: 7110.123830706018
datetime_stop: 7110.125493159722
source_product: S5P_OFFL_L1B_RA_BD3_20190620T020303_20190620T034433_0872...
history: 2021-02-08T22:13:00Z [harp-1.11] harp.import_product('S5... <xarray.Dataset>
Dimensions: (independent_4: 4, time: 19138, vertical: 34)
Dimensions without coordinates: independent_4, time, vertical
Data variables:
scan_subindex (time) int16 ...
datetime_start (time) datetime64[ns] ...
datetime_length float32 ...
orbit_index int32 ...
validity (time) int32 ...
latitude (time) float32 ...
longitude (time) float32 ...
latitude_bounds (time, independent_4) float32 ...
longitude_bounds (time, independent_4) float32 ...
sensor_latitude (time) float32 ...
sensor_longitude (time) float32 ...
sensor_altitude (time) float32 ...
solar_zenith_angle (time) float32 ...
solar_azimuth_angle (time) float32 ...
sensor_zenith_angle (time) float32 ...
sensor_azimuth_angle (time) float32 ...
pressure (time, vertical) float64 ...
SO2_column_number_density (time) float32 ...
SO2_column_number_density_uncertainty_random (time) float32 ...
SO2_column_number_density_uncertainty_systematic (time) float32 ...
SO2_column_number_density_validity (time) int8 ...
SO2_column_number_density_amf (time) float32 ...
SO2_column_number_density_amf_uncertainty_random (time) float32 ...
SO2_column_number_density_amf_uncertainty_systematic (time) float32 ...
SO2_column_number_density_avk (time, vertical) float32 ...
SO2_volume_mixing_ratio_dry_air_apriori (time, vertical) float32 ...
SO2_slant_column_number_density (time) float32 ...
SO2_type (time) int8 ...
O3_column_number_density (time) float32 ...
O3_column_number_density_uncertainty (time) float32 ...
absorbing_aerosol_index (time) float32 ...
cloud_albedo (time) float32 ...
cloud_albedo_uncertainty (time) float32 ...
cloud_fraction (time) float32 ...
cloud_fraction_uncertainty (time) float32 ...
cloud_altitude (time) float32 ...
cloud_altitude_uncertainty (time) float32 ...
cloud_pressure (time) float32 ...
cloud_pressure_uncertainty (time) float32 ...
surface_albedo (time) float32 ...
surface_altitude (time) float32 ...
surface_altitude_uncertainty (time) float32 ...
surface_pressure (time) float32 ...
index (time) int32 ...
Attributes:
Conventions: HARP-1.0
datetime_start: 7110.123830706018
datetime_stop: 7110.125505659722
source_product: S5P_OFFL_L2__SO2____20190620T020303_20190620T034433_0872...
history: 2021-02-08T22:14:46Z [harp-1.11] harp.import_product('S5...
------------
2019-06-20T02:58:23.293000000 2019-06-20T02:58:18.973000000 2019-06-20T02:58:18.973000000
364 385 385
44.000114 44.000736 44.000736
157.1179 158.71748 158.71748
Seems that L1B_B3 and SO2 are aligned but this don’t happen with L1B_B2 which has also a slighty different “time” dimension (19035 for B2, 19138 for B3 and SO2).
Is what I obtained right? If yes, could you suggest one way to compare information for the same lat/lon points for B2, B3 and SO2? Because in this case seems that I can’t match the same datetime
and scan_subindex
for B2, B3 and SO2.
Many thanks in advance.