<p>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".  </p>

<p>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.  </p>

<p>If you are interested in learning more about the product, I highly suggest you see <a href="http://atmos-meas-tech.net/4/1905/2011/amt-4-1905-2011.html" rel="nofollow noreferrer">Boersma (2011)</a> and also refer to the <a href="http://www.temis.nl/docs/OMI_NO2_HE5_2.0_2011.pdf" rel="nofollow noreferrer">user manual</a>.</p>

CC BY-SA 3.0
2016-11-16T03:07:06.180Z
2017-01-16T05:40:48.100Z
2017-01-16T05:40:48.100Z
f.thorpe
<p>I'm dealing with NO2 column density of troposphere, and my data source is <a href="http://www.temis.nl/airpollution/no2col/no2regioomimonth_v2.php" rel="noreferrer">TEMIS</a>. </p>

<p>The NO2 level3 data can be derived from the original information of OMI instrument.  </p>

<p>I have downloaded two types of data, <em>.grd</em> and <em>.kml</em> for the same month. </p>

<p>The data I have downloaded are uploaded here<a href="https://drive.google.com/file/d/0B7FE0kxAL8kQV3FEQlhTa0N6Wmc/view?usp=sharing" rel="noreferrer">1</a>, <a href="https://drive.google.com/file/d/0B7FE0kxAL8kQRE53UDRrRm9ISFk/view?usp=sharing" rel="noreferrer">2</a> </p>

<h3>KML data</h3>

<p>I open it in Google Earth, the figure shows like this:   </p>

<p><a href="https://i.sstatic.net/WnZj8.jpg" rel="noreferrer"><img src="https://i.sstatic.net/WnZj8.jpg" alt="enter image description here"></a>  </p>

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

<h3>GRD data</h3>

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

<p>I use python to read and plot the spatial distribution. </p>

<pre><code>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

no2[isnt_NaN(no2)].max()
&gt; 9999.0
</code></pre>

<blockquote>
  <p>It seems that the high value in <strong>grd</strong> 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).  </p>
</blockquote>

<p>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.</p>

<p><a href="https://i.sstatic.net/BAwKL.png" rel="noreferrer"><img src="https://i.sstatic.net/BAwKL.png" alt="enter image description here"></a></p>

CC BY-SA 3.0
2016-11-15T03:10:34.687Z
What are you intending to do with the product?  There are a few different applications, all of which are underwhelming.  You might gleam some usefulness from my answer here: https://earthscience.stackexchange.com/questions/8860/convert-omi-no2-vertical-column-density-molecules-cm2-into-mixing-ratio-ppm/8868#8868 and see http://www.atmos-meas-tech.net/4/1905/2011/amt-4-1905-2011.html
f.thorpe
<atmosphere><remote-sensing><air-pollution><atmospheric-chemistry><satellites>
The higher value range for the same satellite product (NO2_OMI_TEMIS)
Han Zhengzu
# The higher value range for the same satellite product (NO2_OMI_TEMIS)

(Asked by: username_0 on 2016-11-14)

I'm dealing with NO2 column density of troposphere, and my data source is [TEMIS](http://www.temis.nl/airpollution/no2col/no2regioomimonth_v2.php).

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 here[1](https://drive.google.com/file/d/0B7FE0kxAL8kQV3FEQlhTa0N6Wmc/view?usp=sharing), [2](https://drive.google.com/file/d/0B7FE0kxAL8kQRE53UDRrRm9ISFk/view?usp=sharing)

### KML data

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

[![enter image description here](https://i.sstatic.net/WnZj8.jpg)](https://i.sstatic.net/WnZj8.jpg)

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

no2[isnt_NaN(no2)].max()
> 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](https://i.sstatic.net/BAwKL.png)](https://i.sstatic.net/BAwKL.png)

**Tags:** atmosphere, remote-sensing, air-pollution, atmospheric-chemistry, satellites

> **Comments:**
> **username_1**: What are you intending to do with the product?  There are a few different applications, all of which are underwhelming.  You might gleam some usefulness from my answer here: https://earthscience.stackexchange.com/questions/8860/convert-omi-no2-vertical-column-density-molecules-cm2-into-mixing-ratio-ppm/8868#8868 and see http://www.atmos-meas-tech.net/4/1905/2011/amt-4-1905-2011.html  

---

## 1 answers

### Answer by username_1 on 2016-11-16. Score: 2

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)](http://atmos-meas-tech.net/4/1905/2011/amt-4-1905-2011.html) and also refer to the [user manual](http://www.temis.nl/docs/OMI_NO2_HE5_2.0_2011.pdf).


---

