Skip to contents

Function to import pre-calculated back trajectories using the NOAA HYSPLIT model. The trajectories have been calculated for a select range of locations which will expand in time. They cover the last 20 years or so and can be used together with other openair functions.


importTraj(site = "london", year = 2009, local = NA)



Site code of the network site to import e.g. "london". Only one site can be imported at a time. The following sites are typically available from 2000-2012, although some UK ozone sites go back to 1988 (code, location, lat, lon, year):

abudhabiAbu Dhabi24.4300054.4080002012-2013
ahAston Hill52.50385-3.0417801988-2013
auchAuchencorth Moss55.79283-3.2425682006-2013
berlinBerlin, Germany52.5200013.4000002000-2013
birmBirmigham Centre52.47972-1.9080781990-2013
bostonBoston, USA42.32900-71.0830002008-2013
bukitBukit Kototabang, Indonesia-0.19805100.3180001996-2013
chittagongChittagong, Bangladesh22.3700091.8000002010-2013
dhakaDhaka, Bangladesh23.7000090.3750002010-2013
elcheElche, Spain38.27000-0.6900002004-2013
hkHong Kong22.29000114.1700001998-2013
hmHigh Muffles54.33500-0.8086001988-2013
kuwaitKuwait City29.3670047.9670002008-2013
londonCentral London51.50000-0.1000001990-2013
lhLullington Heath50.793700.1812501988-2013
lnLough Navar54.43951-7.9003281988-2013
mhMace Head53.33000-9.9000001988-2013
ny-alesundNy-Alesund, Norway78.9176311.8946532009-2013
parisParis, France48.862002.3390002000-2013
rochRochester Stoke51.456170.6348891988-2013
saopauloSao Paulo-23.55000-46.6400002000-2013
svStrath Vaich57.73446-4.7765831988-2013
wuhanWuhan, China30.58300114.2800002008-2013
ywYarner Wood50.59760-3.7165101988-2013

Year or years to import. To import a sequence of years from 1990 to 2000 use year = 1990:2000. To import several specific years use year = c(1990, 1995, 2000) for example.


File path to .RData trajectory files run by user and not stored on the Ricardo web server. These files would have been generated from the Hysplit trajectory code shown in the appendix of the openair manual. An example would be local = 'c:/users/david/TrajFiles/'.


Returns a data frame with pre-calculated back trajectories.


This function imports pre-calculated back trajectories using the HYSPLIT trajectory model (Hybrid Single Particle Lagrangian Integrated Trajectory Model. Back trajectories provide some very useful information for air quality data analysis. However, while they are commonly calculated by researchers it is generally difficult for them to be calculated on a routine basis and used easily. In addition, the availability of back trajectories over several years can be very useful, but again difficult to calculate.

Trajectories are run at 3-hour intervals and stored in yearly files (see below). The trajectories are started at ground-level (10m) and propagated backwards in time.

These trajectories have been calculated using the Global NOAA-NCEP/NCAR reanalysis data archives. The global data are on a latitude-longitude grid (2.5 degree). Note that there are many different meteorological data sets that can be used to run HYSPLIT e.g. including ECMWF data. However, in order to make it practicable to run and store trajectories for many years and sites, the NOAA-NCEP/NCAR reanalysis data is most useful. In addition, these archives are available for use widely, which is not the case for many other data sets e.g. ECMWF. HYSPLIT calculated trajectories based on archive data may be distributed without permission. For those wanting, for example, to consider higher resolution meteorological data sets it may be better to run the trajectories separately.

We are extremely grateful to NOAA for making HYSPLIT available to produce back trajectories in an open way. We ask that you cite HYSPLIT if used in published work.

Users can supply their own trajectory files to plot in openair. These files must have the following fields: date, lat, lon and (see details below).

The files consist of the following information:


This is the arrival point time and is repeated the number of times equal to the length of the back trajectory --- typically 96 hours (except early on in the file). The format is POSIXct. It is this field that should be used to link with air quality data. See example below.


Receptor number, currently only 1.


The year


Month 1-12


Day of the month 1-31


Hour of the day 0-23 GMT

Number of hours back in time e.g. 0 to -96.


Latitude in decimal format.


Longitude in decimal format.


Height of trajectory (m).


Pressure of trajectory (kPa).


The trajectories were run using the February 2011 HYSPLIT model. The function is primarily written to investigate a single site at a time for a single year. The trajectory files are quite large and care should be exercised when importing several years and/or sites.


David Carslaw


## import trajectory data for London in 2009
if (FALSE) mytraj <- importTraj(site = "london", year = 2009)

## combine with measurements
if (FALSE) theData <- importAURN(site = "kc1", year = 2009)
mytraj <- merge(mytraj, theData, by = "date")
#> Error in merge(mytraj, theData, by = "date"): object 'mytraj' not found