Map Sentinel 5p CH4, SO2 and CO Data (Visan)

If your ground based data is surface data, then this might be difficult. S5P provides a full tropospheric column, but is actually almost non sensitive at the surface (you can see this from the averaging kernel).
For validation you can check out what is done on the official validation server for S5P

1 Like

Hi I have been reading the conversation and has caused me a question.
If my purpose of evaluating air quality with satellite information and information from surface stations, wath variable I should use?.
And the variable nitrogendioxide_tropospheric_colum I find negative values, these ones refer to?.
Thanks

Hello @svniemeijer Sir,
Can I get to know the units for all the parametrs in which sentinel 5P is providing data and in which units we may use for better analysis

Thank You

The units in the products can be found in the user manuals of S5P.
The units that you get when ingesting with HARP are defined in the HARP ingestion documentation.
And what units to use for analysis is up to you. It depends on what you want to do.

Hello @svniemeijer Sir,
I have a query regarding the availability of Sentinel 5P Near Real Time data for 2019 now it was not available for whole world, is there any specific reason?

If you are looking at 2019 data then you should only be using Offline or Reprocessed data. NRTI data is only for when you need the most recent measurements and can’t wait for the Offline data.

I have one querry reading the Validity filter values as I read the Product read me files for CO and found the qa_value>0.7 and if we multiply this by a scale factor 100 it will be 70. Kindly guide me.

The values of the validity variables in HARP are indeed a factor 100 times the value of the qa_value from the ingested products. This was done to allow the validity variable to be represented as an 8 bit integer (instead of having to use an inefficient 32 bit floating point value).

1 Like

export_path=‘sentinel.nc’
product = harp.import_product(r"S5P_OFFL_L2__NO2____20181101T054736_20181101T072905_05446_01_010200_20181107T073552.nc",
operations= “latitude >= 5[degree_north] ; latitude <= 38[degree_north] ;
longitude>=67 [degree_east];longitude<=98 [degree_east];tropospheric_NO2_column_number_density_validity>75;
bin_spatial(661,5,0.05,621,67,0.05);
derive(latitude {latitude});derive(longitude {longitude});
exclude(latitude_bounds,longitude_bounds,latitude_bounds_weight,longitude_bounds_weight,count,weight);
derive(tropospheric_NO2_column_number_density [Pmolec/cm2]);
keep(latitude,longitude,tropospheric_NO2_column_number_density)”,
post_operations=“bin(); squash(time, (latitude_bounds,longitude_bounds))”
)

harp.export_product(product, export_path,file_format=“netcdf”)

I used these above codes and when i tried to export it in nc file and saved the new file it exported in .nc format. But when I tried to plot this it shows error. Is their any problem with the codes?

What do you mean with i open this it did not show anything? Open where? What does it show? What did you expect?

file=xr.open_dataset(‘sentinel1.nc’)
no2=file[‘tropospheric_NO2_column_number_density’]*10**3
fig=plt.figure(figsize=(40,15))
ax = plt.axes(projection=ccrs.PlateCarree())
extent = [60,100,0,40]
no2[0].plot.pcolormesh(ax=ax, x=‘longitude’, y=‘latitude’,
add_colorbar=True, cmap=‘seismic’,
transform=ccrs.PlateCarree(),vmin=0,vmax=0.2)
ax.set_extent(extent)
ax.add_feature(cartopy.feature.RIVERS)
ax.set_title('S-5p L2 NO$_2$ ({}) '.format(str(date[0])))
ax.coastlines(‘10m’)
ax.stock_img()
ax.gridlines()


NameError Traceback (most recent call last)
~\AppData\Local\Temp\ipykernel_12484\3434193819.py in
9 ax.set_extent(extent)
10 ax.add_feature(cartopy.feature.RIVERS) # add river
—> 11 ax.set_title('S-5p L2 NO$_2$ ({}) '.format(str(date[0]))) # add title
12 ax.coastlines(‘10m’) # add coastline
13 ax.stock_img() # add the color of earth

NameError: name ‘date’ is not defined

Please have a look at this use case. It shows you how to create a grid with HARP and then use cartopy to plot the results.

1 Like

4 posts were split to a new topic: Plot S5P CH4 with unit of kilotons

Dear Sander
Could I derive SO2_column_number_density in [Pmolec/cm2] instead of derive(SO2_column_number_density [DU]

operations = "latitude >= 4.9[degree_north] ; latitude <= 38[degree_north] ;
longitude>= 60 [degree_east]; longitude<=98 [degree_east];SO2_column_number_density_validity>50 ;
keep(latitude_bounds,longitude_bounds,datetime_start,datetime_length,SO2_column_number_density,SO2_type);
derive(datetime_stop {time} [days since 2000-01-01]);
derive(datetime_start [days since 2000-01-01]);
exclude(datetime_length);
bin_spatial(3311,4.9,0.01,3801,60,0.01);
derive(latitude {latitude});
derive(longitude {longitude});
derive SO2_column_number_density in [Pmolec/cm2] "

reduce_operations = “squash(time, (latitude, longitude, latitude_bounds, longitude_bounds));bin()”

Thank You

You can, but you will have to use the right syntax. Have a look at your own post Map Sentinel 5p CH4, SO2 and CO Data (Visan) - #30 by Felicidad on how this was done for tropospheric NO2.

Thank You Sander.
Yes, I modified the NO2 script by your guidance and by the help of this forum.
I already mention the desired script for SO2 above (Map Sentinel 5p CH4, SO2 and CO Data (Visan) - #35 by Felicidad). Could U check once, If Possible?