# Plot S5P CH4 with unit of kilotons

Hi, I’m Pratyush extracted the CH4_column_volume_mixing_ratio_dry_air from S5P data in excel and wants to plot it with the unit of kilotons but it’s present in parts per billion volume. Is there any way to do so? Please help me out to do so…
Thank you

Kilotons itself is not a valid unit. S5P provides column densities, so it provides quantities per squared meter. It is possible to derive mass densities with HARP (`derive(CH4_column_density {time} [kg/m2])`), but that gives values much less than 1 kg/m2.
Are you perhaps talking about emissions (kg/s)? If so, S5P doesn’t provide emission data.

The problem is that I’m working on a research paper using datasets from EDGAR, TROPOMI, and many more. The methane emission data from EDGAR goes up to 2021, and I want to create more plots from TROPOMI as time series using the same unit—kilotons—as the EDGAR data. Perhaps you could say this for some particular countries. Since you indicated above that I can determine mass densities using that command, what would happen if I multiplied that density number by the area of a nation? I could determine the area by using latitude and longitude bounds, which would finally yield the methane emission measurement in kilograms. However, I worry that rather than the emission value, the methane column may still turn into some kind of variable. Tell me the thing; it will be really beneficial.
Thank you

As I mentioned, S5P does not provide emission information. It just provides information of what is in the air at the time it flies over, which is not the same.
Maybe someone else on the forum can clarify if there is some mechanism to assess emissions based on S5P measurements, but as far as I understood this is far from trivial.

import harp
import numpy as np
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
from cmcrameri import cm
import eofetch
import os
import matplotlib.ticker as mticker
from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER
os.chdir(“E:/t_3/”)

operations = “;”.join([
“CH4_column_volume_mixing_ratio_dry_air_validity>50”,
“keep(latitude_bounds,longitude_bounds,datetime_start,datetime_length,CH4_column_volume_mixing_ratio_dry_air)”,
“derive(datetime_stop {time} [days since 2000-01-01])”,
“derive(datetime_start [days since 2000-01-01])”,
“exclude(datetime_length)”,
“bin_spatial(1801,-90,0.1,3601,-180,0.1)”,
“derive(latitude {latitude})”,
“derive(longitude {longitude})”,
])
reduce_operations = “squash(time, (latitude, longitude, latitude_bounds, longitude_bounds));bin()”
filenames = “S5P_OFFL_L2__CH4*.nc”
merged = harp.import_product(filenames, operations, reduce_operations=reduce_operations)
#print(merged)
harp.export_product(merged, ‘s5p-ch4_L3_3_2023.nc’)
Using this code I merged the 2022 data of S5P data of CH4 and it runs successfully but as far as I’m trying to merge the 2023 data or 2021 data or even 2020 it’s giving me ‘CLibraryError’ and it might be because of few files which are not good for merge. I want the solution for this if you could provide me any bypass by which if it found any file not able to merge it should skip and continue to merge because when I’m trying to add try…catch block it’s giving different kinds of error. Sort this error and provide me the updated code and I will be grateful to you.
Thank you