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 8.2.1.1, “Inventory list files” and the files listed in the PTHOUR
file must be in either EMS-95 format or Continuous Emissions Monitoring (CEM) format. Each file must have an format identifier
(either #EMS-95 or #CEM) or the format can be specified in the PTHOUR
list file (#LIST EMS-95 or #LIST CEM). The contents of the hour-specific data files vary depending on whether the PTINV
file is in EMS-95 or IDA format. In addition, these files can have a #COUNTRY entry to set the country code (see Section 8.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).
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 8.32, “EMS-95 Format for individual hour-specific files” and the wide EMS-95 format is shown in Table 8.33, “EMS-95 Wide 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 wide
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 wide 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 8.10.3, “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 ORL file and the inventory table.
When using hour-specific data in EMS-95 format with the IDA annual inventory, the fields in the PTHOUR
file should line up with the fields in the PTINV
file as follows:
PTHOUR
Facility ID (FCID) maps to PTINV
PLANTID
PTHOUR
Stack ID (SKID) maps to PTINV
POINTID
PTHOUR
Device ID (DVID) maps to PTINV
STACKID
PTHOUR
Process ID (PRID) maps to PTINV
SEGMENT
PTHOUR
SCC (implied by Process ID in EMS-95 process file) maps to PTINV
SCC
Table 8.32. 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 8.33. EMS-95 Wide 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.
|
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 8.34, “CEM Format for individual hour-specific data files”.
Table 8.34. CEM Format for individual hour-specific data files
Position | Name | Type | Description |
---|---|---|---|
A | ORISID | Char (6) | DOE Plant ID (required) (should match the same field in the PTINV file in IDA format)
|
B | BLRID | Char (6) | Boiler Identification Code (required) (should match the same field in the PTINV file in IDA format)
|
C | YYMMDD | Int | Date of data in YYMMDD format (required) |
D | HOUR | Integer | Hour value from 0 to 23 |
E | NOXMASS | Real | Nitrogen oxide emissions (lb/hr) (required) |
F | SO2MASS | Real | Sulfur dioxide emissions (lb/hr) (required) |
G | NOXRATE | Real | Nitrogen oxide emissions rate (lb/MMBtu) (not used by SMOKE) |
H | OPTIME | Real | Fraction of hour unit was operating (optional) |
I | GLOAD | Real | Gross load (MW) (optional) |
J | SLOAD | Real | Steam load (1000 lbs/hr) (optional) |
K | HTINPUT | Real | Heat input (mmBtu) (required) |
L | HTINPUTMEASURE | Character(2) | Code number indicating measured or substituted, not used by SMOKE. |
M | SO2MEASURE | Character(2) | Code number indicating measured or substituted, not used by SMOKE. |
N | NOXMMEASURE | Character(2) | Code number indicating measured or substituted, not used by SMOKE. |
O | NOXRMEASURE | Character(2) | Code number indicating measured or substituted, not used by SMOKE. |
P | 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 L through O have the following meanings:
This FF10 format uses the header described in Section 8.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 8.35. FF10 Format for individual point hour-specific data files
Position | Name | Type | Description |
---|---|---|---|
1 | COUNTRY | Char(2) | 2 character code: e.g., US (required) |
2 | FIPS | Int | Five-digit FIPS code for state and county (required) |
3 | TRIBAL_CODE | char(3) | Tribal code (optional; not currently used by SMOKE) |
4 | FACILITY_ID | Char | Plant identification code (required; this is the same as the State Facility Identifier in the NIF) |
5 | UNIT_ID | Char | Point Identification Code (15 characters maximum) (required; this is the same as the Emission Unit ID in the NIF) (required) |
6 | REL_POINT_ID | Stack Identification Code (15 characters maximum) (recommended; this is the same as the Emissions Release Point ID in the NIF) | |
7 | PROCESS_ID | Char(3) | DOE Plant ID (15 characters maximum) (recommended; this is the same as the Process ID in the NIF) |
8 | SCC | Char(10) | SCC (required) |
9 | POLL | 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/month) (required) |
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) |