Receive email notifications by changing your settings.
Click on your picture in the top right corner, go to Preferences and select your notification preferences.
Thank you for contributing to our forum!
Please keep in mind:
1. To only comment on the topic where the discussion is about. Do you have a new question or topic? Please start a new discussion.
2. Be kind to other users!

Calculating NO2 emissions


I'm interested in an indicator that calculates the proportion of NO2 emitted by traffic that is sequestered by urban green. I found some interesting papers that provided tones of NO2 sequestered by ha and year of urban green (mainly urban forests).

Therefore, I need to calculate the emissions of traffic. The NO2 overlay provides annual average concentrations which cannot be used in mentioned indicator. I know I can calculate emissions using next formula from your model:

E = N [(1-FS)((1-(fm+fz+fb))El + fm Em + fz * Ez + fb * Eb) + FS * ((1-(fm + fz + fb)) * El,d + Fm * Em,d + fz * Ez,d+fb*Eb,d)]*1000/(24*3600)

However, I cannot figure it out how to calculate the length of roads since they are polygons. Is there a way to know the width of roads so then I could calculate the length?

Thank you.



  • Hey Joseph,

    At this time it is a bit of a chicken-and-egg type of question. Knowing a length or a width allows you to calculate the other. But because a road can be an arbitrarily-shaped polygon, a length and a width can be any direction of the polygon, assuming it's even a rectangle (or rectangle-ish). Our visualization does make use of a centre line to show moving vehicles, which requires knowing an orientation, but that information is is not directly exposed in the user-space.

    Looking at the context of your question, you seem to indicate that you are looking at a yearly sequestration, but that Tygron's calculation of yearly averages is insufficient for this. Could you clarify why a result of the yearly averages doesn't work for your purposes?

    Kind regards,

  • Hi,

    thanks for your answer.

    I want to calculate an indicator that returns the proportion of NO2 emitted by traffic that is sequestered by plants. Your model to calculate NO2 emissions use ug/m/s so I need the total metres of roads to know the total emissions per second. Then, I only must divide the total sequestration (also in ug/s) per total emissions.

    Best wishes!

  • Hey Joseph,

    Tygron does calculate a yearly average concentration of NO2 emissions, the results of which are available as a spatial grid. Although a concentration is not directly an emission, per se, it is the standardized way these calculations are performed in the Netherlands, and therefor also what we have based the model on.

    I'll have to make a note internally that it's not yet possible to get the length of roads and derive the value from there. However, you may be able to rephrase the calculation in terms of concentrations.

  • My intention was to calculate emissions departing from the grid you mention. However, I can't do it without knowing the length of roads. I will figure it out another way to do it.

    I attach an excel where I isolated emissions from the formulas in NO2 overlay, just in case you were curious. ;)


    emissions isolation.xlsx
  • Hi Joseph, and Rudolf,

    Thanks to both of you for the explanation and feedback.

    Real nice you have included the Excel Joseph, we will take a look at it :)

    Kind regards,
    Tygron support team

  • I wrote a short python script to calculate the total length of roads within a bbox based on OSM. I calculated the bbox coordinates departing from the neighbours layer on Tygron usgin WFS. However, it must be converted to ESPG: 4326. I share it and other files related to NO2 sequestration indicador just in case was useful:


  • Hi Josep,

    Thank you so much for sharing! This is great!!

    That's how we like it!!

    Make fantastic initiatives like this available for our community!

    Kind regards,
    Tygron support team

  • Hi!

    I'm still sturggling with the calculation of NO2 total emissions (in ug/s).

    In my last approach the main barrier was that I didn't have the length of roads, so I used the average concentrations and going back through the model until emissions in ug/m/s.

    Currently, I realized that I can know the length of roads, I did next:

    1. Export roads to QGIS
    2. Calculate length using area and perimeter, which I know by this formula: [(perimeter + sqrt(perimeter^2 - 16*area))/4]
    3. Import geojson with length attribute with the following options:
      1. Only update existing buildings with attributes
      2. Only building with category: Road
      3. Attribute LENGTH checked

    However, the roads and the corresponding lengths doesn't match, that is, the length values are displaced among roads.

    Why is this happening? The update function is not using a spatial join? Otherwise, what kind of join is being performed?

    Thank you.

  • edited October 22

    Hi @jpueyo ,

    Where the roads you are importing intersect with the roads in the Tygron Platform, the length attributes will be added to the roads in the Platform. Each intersection will update the roads, even when the intersection is tiny. That could be the reason why the length values are displaced. I suggest to use a negative buffer on the road polygons you are importing to make these polygons smaller, so that the roads will only intersect itself and not the surrounding roads. Please let me know if this solution works for you!

    Tygron support team

  • Hi,

    it perfectly worked!

    Now I have the length of any road in the map, so I can move forward with my unfinishable NO2 indicator... XD

    Thank you.

  • Good to hear that solved the issue and good luck with your indicator!

    Tygron support team

Sign In or Register to comment.