AERMET – As Easy as 1, 2, 3

If you have read the previous articles on locating and obtaining surface and upper air meteorological and land use data (stations, surface, upper air and land use), you now are at the point of learning how to put together the information you have gathered to run AERMET. You have to create three separate inputs files for AERMET, with most of the input data going into the first (Stage 1) input file.


AERMET Stage 1 Input File

What happens in Stage 1 is the raw data files are read and the necessary data extracted and written to a file (see EXTRACT keyword) for AERMET to process. After the data are processed, the result is written to an output file (see QAOUT keyword). The output files for Stage 1 then become the input files for AERMET Stage 2.

Below is a sample Stage 1 input file. The user inputs are indicated in blue.

Under the JOB pathway are the keywords REPORT and MESSAGES. Any processing messages or user feedback are written to the files you indicate. You can use any file name you like. The vital user input occurs under the SURFACE and UPPERAIR pathways. For now we will skip the ONSITE pathway, which would be used if your site has onsite meteorological data available. How to enter onsite data would be an article topic by itself.

The keywords for SURFACE and UPPERAIR are identical. For the DATA keyword, all you need to enter is the raw data file name and the data format for that file. Your surface data should in the ISHD format and your upper air data in the FSL format. Though AERMET can accept other data formats, the ISHD and FSL formats are most widely used and most easily available.

For the EXTRACT and QAOUT keywords, you can use any file naming convention you like. Do keep in mind that the files listed for QAOUT will be the input files for Stage 2. For the XDATES keyword, enter the date range of data necessary for your project. You should already know this date range since the raw data files are either by the specific year or date range. If the date range you enter under XDATES is not consistent with the raw data files, you will get an error message.

Under the LOCATION keyword, you will enter information you will have to lookup either within the raw data files or a secondary data source. You should already know the WBAN ID for the surface weather station you selected. For the upper air station, you can enter the WMO ID that you used to obtain the data, but use can also use the WBAN ID. Both values are in the header of the raw data file.

After the station ids, you will need to enter the latitude and longitude of the stations. The values are in decimal degrees to no more than three decimal places. Also, it doesn’t matter which datum the coordinates are in since it is not asked for. All the values are positive so you will have to indicate whether the location is N or S and E or W. You could look up the coordinates from a secondary data source, but do know that latitude and longitude are listed in the header records of the raw data files.

After the station coordinates, you will need to enter the number of hours difference between station local standard time (LST) and Greenwich (gren` idge) mean time (GMT). The time is recorded in GMT in both the ISHD and FSL formats. Since the surface and upper air stations selected could be different, check the time zone for both because it is very possible they could be different. By convention, the number of hours west of GMT is positive and hours east is negative.

Though it is only required for the surface station, the last value on the LOCATION line is the ELEVATION value in meters. You could look this up in a secondary data source, but the station elevation value is listed in the header records of the raw data files. If the surface and upper air stations you selected are one in the same, it is very possible that the coordinates and elevation values may differ between the surface and upper air raw data. Which value is correct? Don’t know, but it does bring up the issue of what is accurate versus what you can defend. Whether you use the value in the surface file, upper air file, or another value obtained from somewhere else, e.g. state regulatory agency, be sure you have the ability defend your selection.


Once you have executed AERMET for Stage 1, if you are using meteorological data from the year 2000 or more recent and your project is in the USA, you will most likely be required to use AERMINUTE to process one-minute or five-minute ASOS data.

Below is a sample AERMINUTE input file. The user inputs are indicated in blue. The input values are really straightforward. Do make sure that the date ranges used are consistent with what you used in your Stage 1 input file. Be aware of the different date formats between AERMET and AERMINUTE. Keep in mind that the ASOS data use LST for time values.

The data files should come as one per month, so you should have 12 for entire calendar year. You would list each file on its own line sequentially.

Though there are several options for the OUTFILES, the HOURFILE is the only required entry. Be aware that the file name you use on this line needs to appear in the AERMET Stage 2 input file.

The function of AERMET Stage 2 is to compile all the surface data (hourly and one-minute) and upper air data into one file for use with Stage 3.

The pathways in Stage 2 are the same as in Stage 1 with the addition of the MERGE pathway. The values under QAOUT keyword should be identical to what you used in Stage 1. If not, you will have some explaining to do as this is the only “linkage” between Stage 1 and Stage 2. If you had to run AERMINUTE, the additional keyword ASOS1MIN is used for you to enter the file generated by AERMINUTE. This should be identical to what you entered under the HOURFILE keyword in the AERMINUTE input file. If not, you will have some explaining to do as this is the only “linkage” between AERMINUTE and AERMET Stage 2.

AERSURFACE and Stage 3

Like AERMINUTE, AERSURFACE is independent of AERMET. Unlike AERMINUTE, AERSURFACE does not rely upon meteorological data from the surface or upper air data files. The only input you need to start is the location of the site to be modeled. Based on that site location, you will need to assign seasons to calendar months and then let AERSURFACE determine the meteorological surface characteristics based on land use data.

Since AERSURFACE does not use an input file for execution but user input from the keyboard, the input values cannot be shown. The only input value that impacts AERMET input is the AERSURFACE output filename entered by the user.

For Stage 3, there are only two pathways: JOB and METPREP. The JOB pathway is the same in all three stages. It is recommended you use separate directories for each stage. By doing so, the entries under the JOB pathway could be identical.

Under the DATA keyword, enter the value used under the OUTPUT keyword from Stage 2. The file names should match exactly. If not, you will have some explaining to do as this is the only “linkage” between Stage 2 and Stage 3.

For the METHOD keyword, listed in bold black are the mandatory and/or default values. If you do not use onsite data, then the REFLEVEL SUBNWS entry is mandatory. The WIND_DIR RANDOM entry is not required, if left out the default is random anyway. The UASELECT SUNRISE entry is optional and has no impact if your project is in the continental US. However, if your project is elsewhere in the world, it is a good idea to use this entry.

If you do use onsite data but the data do not include turbulence measurements, then it is recommended you use the STABLEBL ADJ_U* entry. This entry used to be non-regulatory, but has since become a default. It is optional, so do check with the regulatory agency that is going to review your dispersion modeling analysis to ensure its use is acceptable.

Though you could enter all the surface characteristics explicitly, it is highly recommended you use the AERSURF keyword to list the AERSURFACE output from your execution of AERSURFACE. The AERSURFACE log file will list that file name and it should be identical to what you use in Stage 3.  If not, you will have some explaining to do as this is the only “linkage” between AERSURFACE and Stage 3.


There you have it: AERMET as easy as 1 – AERMINUTE – 2 – AERSURFACE – 3. Not exactly the smoothest workflow, but it is not a full on Rube Goldberg either. Now that it has been explained, it should be easy enough to flow.

If you found this article informative, there is more helpful and actionable information for you.  Go to to see a list of past webinar mini-courses. Every Wednesday (Webinar Wednesday), NaviKnow is offering FREE webinar mini-courses on topics related to air quality dispersion modeling and air quality permitting. If you want to be on our email list, drop me a line at [email protected].

One of the goals of NaviKnow is to create an air quality professional community to share ideas and helpful hints like those covered in this article. So if you found this article helpful, please share with a colleague.

If you do not have the time or the tools to create meteorological input files for your AERMOD dispersion modeling project, NaviKnow is now providing a service to do it for you. If your project is in the continental US, we can do all the processing and documentation for you. Our price is 600 USD for a five-year data set. The deliverables to you is not just the files for use with AERMOD but all the inputs and output for AERMET Stages 1, 2, and 3, AERMINUTE, and AERSURFACE and associated documentation required by most regulatory agencies. Also, the surface characteristics will be generated using the latest land use data.

If you are interested in our meteorological data processing services, please let us know by going to to make a request.