Tree Data
We used open source data set of trees from the city of Frankfurt ( Baumkataster Frankfurt am Main) as well as an open dataset from New York City ( NYC Open Data). These datasets only include the public trees, which causes the blind spots in the private areas. This problem is solved by allowing users to add new tree data to the application's database.

Frankfurt am Main Tree data

from Grünflächenamt der Stadt Frankfurt am Main displays on esri light gray canvas basemap

New York Tree data

The "2015 Street Tree Census - Tree Data" is the street tree data from the "TreesCount" 2015 Street Tree Census, conducted by volunteers and staff organized by NYC Parks and Recreation and partner organizations. Tree data collected includes tree species, diameter and perception of health. Accompanying blockface data is available indicating status of data collection and data release citywide. More detail
Current Wind Data
The wind data is collected from OpenWeatherMap by an API request every 5 minutes and then it is inserted into the database over time. The important wind data parameters from OpenWeatherMap are the following parameters.
  • [wind.speed] Wind speed. Unit: meter/sec
  • [wind.deg] Wind direction, Unit: degrees (meteorological)
Historical Wind Data
The historical wind data is based on a statistical analysis of historical hourly weather reports and model reconstructions from January 1, 1980 to December 31, 2016 taken from the open source online website ( [May 2017]).

Tree Blooming data
Another important base information for this project is the blooming behavior of trees taken from from Allergopharma. Around the major blooming season, the chance of blooming is even higher and in the middle of the season, the tree will definitely bloom. For pollen dispersal calculation purpose, this data can be expressed as the floating numbers from 0 to 1 where the 1 indicates the highest possibility of blooming.

Allergen calendar for Central Europe,

Pollen Dispersal Analysis

In order to display the dispersal of pollen effectively, the ellipse is created at the tree location with following parameters:
  • Ellipse size: related to time of the year that the size will be bigger in the high pollen season and smaller in the non-pollen season.
  • Ellipse position: related to the tree location.
  • Ellipse direction: related to the wind direction.
  • Ellipse color: related to the tree type.
  • Ellipse opacity: related to pollen density.

Pollen dispersal multiple-ring ellipses

In total, three ellipses will be generated at each tree location. Firstly, the ellipse center position (xe1, ye1 in case of the small ellipse), semi-major and semi-minor axis (a1, b1 in case of the small ellipse) have to be computed by the table below.
Ellipse size Compute distance l Semi-major axis “a” Semi-minor axis “b”
Small ellipse l1 = (100) * (Fs) a1 = (200) * (Fs) b1 = (100) * (Fs)
Medium ellipse l2 = (150) * (Fs) a2 = (300) * (Fs) b2 = (150) * (Fs)
Medium ellipse l3 = (250) * (Fs) a3 = (500) * (Fs) b3 = (250) * (Fs)
For all equations, the second coefficient (Fs) is the “Factor of seasonal blooming” of each tree in the specific month which has value in the range of 0 to 1. Then, the first coefficient had been applied due to the former researches about pollen dispersal distance showing that pollen has high concentration approximately within 500 – 1000 meters along the wind direction. Thus, in our application, we applied the value of these coefficients as shown in the table above.
For example, in case of the peak blooming season, the small, medium and big ellipse will have the far most distance from the tree location equal to 300, 450 and 750 meters respectively as shown in the following table.
The longest distance from the ellispe-center Calculation Example
small ellipse l1+a1 = [100 * 1] + [200*1] = 300
medium ellipse l2+a2 = [150 * 1] + [300*1] = 450
big ellipse l3+a3 = [250 * 1] + [500*1] = 750

System Architecture

Application System Architecture

Application Server

To deliver a fast and multiple user access a node.js server technology is implemented as the heart of the systems. It is in use as the application server and brings all components together. The system is controlled through famous node packages like express.js , require.js and pg-promise.
  • Express
  • The express module is used to set up the http(s) communications ways from the server to the client.
  • Require
  • Require loads the plain JavaScript files and the asynchronous module API for the node server.
  • PG - promise
  • This module is used to connect the node application server with the PostgreSQL database. It promises, to suppress the asynchronous processing until the database response for a request.
  • AJAX - request
  • The requests from the server to the clients is managed with the node module AJAX-request. It enables to make asynchronous server requests.
  • Others
  • As well there are some other smaller modules used for developing and handling data on the server site like body - parser, url-join, pg-format, d3 and nodemon.

    Client Side

    The client site and the corresponding visualization consists of a combination of the following three technologies.
  • The 3-dimensional and open source NASA WORLD WIND globe is fundamental for the spatial visualization. Its JavaScript API delivers a lot of useful functionalities for visualization and calculations independence to the NASA globe. Especially the functions for spatial calculations and operations are used to bring the visualization in the coordinate reference system of the globe.
  • D3 . js ( data driven document )
  • Through the open source charting library D3.js, data-driven charts are generated to support the visualization of the NASA globe. That charts make it easy to analyze historical data.
  • Bootstrap
  • To implement the control elements like buttons and select lists, the open source CSS library bootstrap is used.


    Database Model

    The data fundamental is set up through a PostgreSQL database with PostGIS as its spatial extension. This extension enables the database to perform spatial operations and calculations. The data organization is distributed into four main branches:
  • Geodesic entities and functions (delivered by PostGIS).
  • Blooming data
  • Tree data
  • Wind data
  • Real-time
  • Historical
  • The blooming and tree data build a data set which is always combined with either a historical or real-time wind dataset. That combination defines a final dataset for the visualization of the pollen distribution. The real-time data are updated in a sequence of 5 minutes and can be used to update the historical data. The blooming and tree data build a data set which is always combined with either a historical or real-time wind dataset. That combination defines a final dataset for the visualization of the pollen distribution. The real-time data are updated in a sequence of 5 minutes and can be used to update the historical data.

    Web Feature Service

    For the source of real-time wind data, the API of OpenWeatherMap is used. Through that API all 5 minutes, the wind data will be updated and used for new analysis and calculation of the pollen distribution zones.

    Routing with Google Map API

    The Google Maps API is selected to used as a routing engine. It gives accurate results. It is easier to develop the routing function to the NASA World Wind with Google API. However, in this application, the call to Google Maps API is used under free license and limited requests per day/month. So that, later on, we develop the routing using the PG-Routing opensource routing tool on our server side.

    Smart Routing with PG-Routing

    The application offers routing functionalities based on the open source routing – engine “PGRouting”. It contains two routing modes.
  • The fastest way from a start location to a destination based on a Dijkstra algorithm.
  • The fastest way from a start location to a destination by considering trees that should be avoided. This function is based on a Dijkstra algorithm as well, but uses a filter that filters out all route edges that contains overlaps with trees that should be avoided.
  • Smart Routing

    (Illustratation of the differences between the two routing functions.)

    Related Researches

    From many pieces of research, the atmospheric parameters such as turbulence, wind velocity, and direction play a very important role in determining the dispersal of a pollen grain. Since the wind is the vector by which the pollen is transported, one would think the most influential parameter would be the horizontal wind velocity (Di Giovanni & Kevan, 1991). However, there have been a very limited number of studies done to try and quantify the correlation between distance traveled and horizontal wind velocity and those who have focused on this topic have come up with varying results.

    Pollen Dispersal from tilted Gaussian plume models
    Gaussian plume models are most commonly used in air-pollution studies, to predict particle concentrations in terms of distance from a ground-level point source. Many research and study use this model to apply for pollen grain as well.
    This approach deals with light particles with a terminal velocity of zero, and ground level emission. Adding release height and gravitational effects (for “heavy” particles) brought about the next generation of Gaussian plume models, known as the tilted Gaussian plume (Okubo & Levin, 1989):


    where p(x1) is the probability density function of locating a seed or pollen grain at a distance, x1, on the ground with respect to a point source at a given height, xr. Vt is the terminal velocity of the grain, are the time and depth-averaged horizontal wind velocity, σ is the mean eddy diffusivity (for a boundary rather than canopy layer flow) and is described as 2Ax1/, where A is the diffusion coefficient given by k(u*)(x*)/2 . Where u* is the frictional velocity, xr is the release height, and k is the von Kármán constant, regularly used for describing the logarithmic velocity profile of a turbulent fluid flow near a boundary layer. (Gail MacInnis, 2012)

    Gaussian-Plume-Models Schematic