The PTHOUR
file is the input point-source inventory file for hour-specific data and profiles. The file must be a list file (see Section 6.2.1.1, “Inventory list files” and the files listed in the PTHOUR
file must be in Continuous Emissions Monitoring (CEM) format when processing hourly CEM inventory data files with an format
identifier (#CEM) or the format can be specified in the PTHOUR
list file (#LIST CEM). In addition, these files can have a #COUNTRY entry to set the country code (see Section 6.2.1.4, “Header records”. The default country code is 0, which corresponds to the United States in the default COSTCY
file.
The PTHOUR
file may optionally contain a packet to control the range of dates for which Smkinven will read data. When this feature is needed, the following entry should appear on the first line of the PTHOUR
file.
DATERANGE MMDD(start) MMDD(end)
where MMDD is the two-digit month and day of the month at the start and end of the period of interest. For example, to request July 10th through 12th, the first line of the file should read:
DATERANGE 0710 0712
The year is implied by the data themselves; note that the files can only contain data for a single year. As an alternative
to using the DATERANGE packet, you can manually break the year up into smaller periods in separate files, and only list the
files of interest in the PTHOUR
file. Note that reading in the whole year of data and extracting just a few days will take much more time than manually editing
the file to contain just the days of interest. Also note that if you choose the manual editing option, you must select days
that fully cover the modeling episode after accounting for time zone differences between the facility’s time zone and the
modeling time zone (set by the OUTZONE
option).
SMOKE uses the CEM ORIS ID and Boiler ID fields to match sources in the CEM hour-specific inventory to those in the annual inventory. Note that the CEM data hours are in standard local time (no daylight saving time adjustment). The format of the CEM hour-specific data is shown in Table 6.22, “CEM Format for individual hour-specific data files”.
Table 6.22. CEM Format for individual hour-specific data files
Position | Name | Type | Description |
---|---|---|---|
1 | ORISID | Char (6) | DOE Plant Identification Code (required) |
2 | BLRID | Char (6) | Boiler Identification Code (required) |
3 | YYMMDD | Int | Date of data in YYMMDD format (required) |
4 | HOUR | Integer | Hour value from 0 to 23 |
5 | NOXMASS | Real | Nitrogen oxide emissions (lb/hr) (required) |
6 | SO2MASS | Real | Sulfur dioxide emissions (lb/hr) (required) |
7 | NOXRATE | Real | Nitrogen oxide emissions rate (lb/MMBtu) (not used by SMOKE) |
8 | OPTIME | Real | Fraction of hour unit was operating (optional) |
9 | GLOAD | Real | Gross load (MW) (required) |
10 | SLOAD | Real | Steam load (1000 lbs/hr) (required) |
11 | HTINPUT | Real | Heat input (mmBtu) (required) |
12 | HTINPUTMEASURE | Character(2) | Code number indicating measured or substituted, not used by SMOKE. |
13 | SO2MEASURE | Character(2) | Code number indicating measured or substituted, not used by SMOKE. |
14 | NOXMMEASURE | Character(2) | Code number indicating measured or substituted, not used by SMOKE. |
15 | NOXRMEASURE | Character(2) | Code number indicating measured or substituted, not used by SMOKE. |
16 | UNITFLOW | Real | Flow rate (ft3/sec) for the Boiler Unit (optional; must be present for all records or not any records not yet used by SMOKE) |
The code numbers used in columns 12 through 15 have the following meanings:
This FF10 format uses the header described in Section 6.2.1.4, “Header records”.
The user specifies the data provided using this command in the header: FF10_HOURLY_POINT.
Sample header records for hourly point sources are shown below:#FORMAT=FF10_HOURLY_POINT #COUNTRY US #YEAR year of inventory, e.g. 2008 #DESC Point Hourly Source Inventory #DESC FF10 Point Hourly format
Table 6.23. FF10 Format for individual point hour-specific data files
Position | Name | Type | Description |
---|---|---|---|
1 | COUNTRY | Char(3) | Country code: e.g., US (required) |
2 | FIPS | Char(5) | FIPS code for state and county (required; example 037001) |
3 | TRIBAL_CODE | Char(3) | Tribal code (optional; recommended) |
4 | FACILITY_ID | Char(20) | Facility Identification Code (required; same as the Plant ID in the ORL format) |
5 | UNIT_ID | Char(20) | Unit Identification Code (required; same as the Point ID in the ORL format) |
6 | REL_POINT_ID | Char(20) | Release Point Identification Code (required; same as the Stack ID in the ORL format) |
7 | PROCESS_ID | Char(20) | Process Identification Code (recommended; same as the Segment ID in the ORL format) |
8 | SCC | Char(20) | SCC (required) |
9 | POLID | Char(16) | Pollutant Code (required) |
10 | OP_TYPE_CD | Char(20) | Operating type code for startup/shutdown/upset (optional; not currently used by SMOKE) |
11 | CALC_METHOD | Int | CALC_METHOD (optional; not currently used by SMOKE) |
12 | DATE_UPDATED | Int | Updated date in format of YYYYMMDD (optional; not currently used by SMOKE) |
13 | DATE | Int | Date of inventory in format of YYYYMMDD (required) |
14 | DAYTOT | Real | Daily Total (short tons/day) (required if SMKINVEN_MONTH is set to 0)
|
15 | HRVAL0 | Real | Hourly emission for hour 0 (short tons/hour) (required) |
16 | HRVAL1 | Real | Hourly emission for hour 1 (short tons/hour) (required) |
17 | HRVAL2 | Real | Hourly emission for hour 2 (short tons/hour) (required) |
.. | .. | ||
34 | HRVAL23 | Real | Hourly emission for hour 23 (short tons/hour) (required) |
35 | COMMENT | Char | (optional) |
For EMS-95 formatted data, SMOKE requires that the sources in the PTHOUR
file also be in the PTINV
file. The values of the fields that are common to the hour-specific data and the annual data need to match exactly. These
fields are Facility ID, Stack ID, Device ID, and Process ID. These fields are treated as text fields (not numeric) in SMOKE,
so leading zeros need to be consistent between the hour-specific and annual or average-day inventory files.
There are two types of EMS-95 format available for hour-specific data. The traditional EMS-95 format is shown in Table 6.24, “EMS-95 Format for individual hour-specific files” and the wider EMS-95 format is shown in Table 6.25, “EMS-95 Wider Format for individual hour-specific files”. The traditional EMS-95 format has 7 columns available for the emissions values instead of 12 columns in the EMS-95 wider
format. For some air pollutant values, the 7 columsns was not big enough to capture the low precision unless scientific notation
is used. To use the EMS-95 wider format, the optional environmental variable HOURLY_WIDE_FMT
needs to be set to Y
.
To process pollutant names greater than 5 characters, you need to add the new field of inventory pollutant code known as CAS
number from column 261 to 276. If this new field is filled, the POLID
is not used. If the new field is not filled, the POLID
is required to use the inventory data name. The CAS number will be used to distinguish which chemical compound or inventory
pollutant is provided on each line of the file. Smkinven matches these numbers with the CAS numbers from an inventory table (INVTABLE
) file, described in Section 6.10.4, “INVTABLE
: Inventory table”. The CAS number does not necessarily have to be a valid CAS number; it can be any number as long as there is a match between
the numbers in the SMOKE ORL file and the inventory table.
Table 6.24. EMS-95 Format for individual hour-specific files
Position | Name | Type | Description | ||
---|---|---|---|---|---|
1-2 | STID | Int | State Code (required) | ||
3-5 | CYID | Int | County Code (required) | ||
6-20 | FCID | Char | Facility ID (a.k.a. Plant ID) (required) | ||
21-32 | SKID | Char |
|
||
33-44 | DVID | Char |
|
||
45-56 | PRID | Char |
|
||
57-61 | POLID | Char | Pollutant name (required) | ||
62-69 | DATE | Char | Date in MM/DD/YY format. Years less than 70 are treated as century 2000 (required) | ||
70-72 | TZONNAM | Char | Time zone name associated with emissions data. Valid entries are GMT, ADT, AST, EDT, EST, CDT, CST, MDT, MST, PDT, and PST. (required) | ||
73-79 | HRVAL1 | Real | Hourly emissions for hour 1 (short tons/hour) (required) | ||
80-86 | HRVAL2 | Real | Hourly emissions for hour 2 (short tons/hour) (required) | ||
87-93 | HRVAL3 | Real | Hourly emissions for hour 3 (short tons/hour) (required) | ||
... | |||||
234-240 | HRVAL24 | Real | Hourly emissions for hour 24 (short tons/hour) (required) | ||
241-248 | DAYTOT | Real | Daily emissions total (short tons/day) | ||
250-259 | SCC | Char | SCC (required). | ||
261-276 | DATNAM | Char | Inventory Pollutant Code (16-characters) (optional) that matches same column of Inventory Table. It is the name of the pollutants
used in the ORL inventory files. This field should be used instead of the "POLID " field when pollutant anmes are longer than 5 characters. If this field is filled, POLID is not used.
|
Table 6.25. EMS-95 Wider Format for individual hour-specific files
Position | Name | Type | Description | ||
---|---|---|---|---|---|
1-2 | STID | Int | State Code (required) | ||
3-5 | CYID | Int | County Code (required) | ||
6-20 | FCID | Char | Facility ID (a.k.a. Plant ID) (required) | ||
21-32 | SKID | Char |
|
||
33-44 | DVID | Char |
|
||
45-56 | PRID | Char |
|
||
57-61 | Leave blank | ||||
62-69 | DATE | Char | Date in MM/DD/YY format. Years less than 70 are treated as century 2000 (required) | ||
70-72 | TZONNAM | Char | Time zone name associated with emissions data. Valid entries are GMT, ADT, AST, EDT, EST, CDT, CST, MDT, MST, PDT, and PST. (required) | ||
73-84 | HRVAL1 | Real | Hourly emissions for hour 1 (short tons/hour) (required) | ||
85-96 | HRVAL2 | Real | Hourly emissions for hour 2 (short tons/hour) (required) | ||
97-108 | HRVAL3 | Real | Hourly emissions for hour 3 (short tons/hour) (required) | ||
... | |||||
349-360 | HRVAL24 | Real | Hourly emissions for hour 24 (short tons/hour) (required) | ||
361-372 | DAYTOT | Real | Daily emissions total (short tons/day) | ||
373-380 | SCC | Char | SCC (required). | ||
381-396 | DATNAM | Char | Inventory Pollutant Code (16-characters) (optional) that matches same column of Inventory Table. It is the name of the pollutants
used in the ORL inventory files. This field should be used instead of the "POLID " field when pollutant anmes are longer than 5 characters. If this field is filled, POLID is not used.
|