I'm dealing with NO2 column density of troposphere, and my data source is TEMIS.

The NO2 level3 data can be derived from the original information of OMI instrument.

I have downloaded two types of data, .grd and .kml for the same month.

The data I have downloaded are uploaded here1, 2

KML data

I open it in Google Earth, the figure shows like this:

enter image description here

We can see the data range of NO2 trop. column is 0~20 which are idential to the templete figure on the website.

GRD data

I have not found any detailed information about this data. In the contents of it, -999 is deemed as no_data place.

I use python to read and plot the spatial distribution.

filename  = './CH2O-NO2/no2_201306.grd'
def read_grd(filename):
    ncols     = np.array(linecache.getline(filename, 1)[6:10]).astype(float)
    nrows     = np.array(linecache.getline(filename, 2)[6:10]).astype(float)
    xllcorner = np.array(linecache.getline(filename, 3)[10:14]).astype(float)
    yllcorner = np.array(linecache.getline(filename, 4)[10:14]).astype(float)
    cellsize  = np.array(linecache.getline(filename, 5)[9:14]).astype(float)
    nan_value = np.array(linecache.getline(filename, 6)[13:17]).astype(float)
    longitude = xllcorner + cellsize * np.arange(ncols)
    latitude = yllcorner + cellsize * np.arange(nrows)
    value = np.loadtxt(filename, skiprows=7)
    value = value[::-1]
    return value, longitude, latitude, nan_value

no2,lon_no2, lat_no2, nan_value = read_grd(filename)
no2[no2 == nan_value] = np.nan

def isnt_NaN(num):
    return num == num

> 9999.0

It seems that the high value in grd format data are out of the regular condition which can be learned from previous resarch (Hot spots of NO2 column are about 15~20 10^15 molec/cm2).

Does anyone familiar with the OMI-NO2 data? I don't know how to deal with the irregular value which are way too higher than realistic.

enter image description here


1 Answer 1


It seems that you are concerned that your values in the data go above the max value on the color bar shown in the kml file. I wouldn't worry about that. You are using the "level 3" monthly average product, which by definition is highly quality controlled. For most of the globe, typical values will vary between 1 x 10^14 and 5 x 10^15 molec/cm2. Values over 20 x 10^15 molec/cm2 only occur in highly polluted areas. Very large values in the OMI NO2 product are realistic, especially in SE Asia, where the largest NO2 columns are obtained. I have even seen values over 1 x 10^17 on occasion. As the signal gets larger, there is actually more confidence in the retrieval. Really it's the low values (e.g. less than 8 x 10^14 molec/cm2) that you should treat cautiously, as anything lower than that could be "noise".

In order to show the variance of values (which can span 4 orders of magnitude) across the whole globe, the color scale chosen works well. Note that the color bar is a logarithmic scale, which helps give definition to the plots in the regions with typical values. You could rewrite the kml file though, and pick a different max value, if you are interested in better plots of southeast Asia.

If you are interested in learning more about the product, I highly suggest you see Boersma (2011) and also refer to the user manual.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.