Skip to content

VERDI reader for CAMx point source files #380

@lizadams

Description

@lizadams

Request development of a reader to allow VERDI to load and display CAMx point source files.

netCDF header information for the example file:

netcdf point.camx.pt_oilgas.20160611 {
dimensions:
TSTEP = UNLIMITED ; // (24 currently)
DATE-TIME = 2 ;
LAY = 1 ;
VAR = 59 ;
ROW = 1 ;
COL = 31394 ;
variables:
float xcoord(COL) ;
xcoord:units = "m" ;
xcoord:long_name = "source X coordinate" ;
xcoord:var_desc = "X cartesian distance from projection origin" ;
float ycoord(COL) ;
ycoord:units = "m" ;
ycoord:long_name = "source Y coordinate" ;
ycoord:var_desc = "Y cartesian distance from projection origin" ;
float stkheight(COL) ;
stkheight:units = "m" ;
stkheight:long_name = "stack height" ;
stkheight:var_desc = "source stack height" ;
float stkdiam(COL) ;
stkdiam:units = "m" ;
stkdiam:long_name = "stack diameter" ;
stkdiam:var_desc = "source stack diameter" ;
float stktemp(COL) ;
stktemp:units = "K" ;
stktemp:long_name = "stack temperature" ;
stktemp:var_desc = "source stack exit temperature" ;
float stkspeed(COL) ;
stkspeed:units = "m hr-1" ;
stkspeed:long_name = "stack exit velocity" ;
stkspeed:var_desc = "source stack exit velocity" ;
int pigflag(COL) ;
pigflag:units = "" ;
pigflag:long_name = "PiG flag" ;
pigflag:var_desc = "PiG flag (0=off 1=PiG)" ;
int saoverride(COL) ;
saoverride:units = "" ;
saoverride:long_name = "SA region override" ;
saoverride:var_desc = "SA region override (0=off)" ;
int TFLAG(TSTEP, VAR, DATE-TIME) ;
TFLAG:units = "YYYYDDD,HHMMSS" ;
TFLAG:long_name = "Start time flag" ;
TFLAG:var_desc = "Timestep start date and time" ;
int ETFLAG(TSTEP, VAR, DATE-TIME) ;
ETFLAG:units = "YYYYDDD,HHMMSS" ;
ETFLAG:long_name = "End time flag" ;
ETFLAG:var_desc = "Timestep end date and time" ;
float flowrate(TSTEP, COL) ;
flowrate:units = "m3 hr-1" ;
flowrate:long_name = "source stack flow ra" ;
flowrate:var_desc = "source stack flow rate (0=use exit velocity)" ;
float plumerise(TSTEP, COL) ;
plumerise:units = "m" ;
plumerise:long_name = "plume rise override" ;
plumerise:var_desc = "plume rise override (0=calculate plume rise)" ;
float plume_bottom(TSTEP, COL) ;
plume_bottom:units = "m" ;
plume_bottom:long_name = "plume rise distribut" ;
plume_bottom:var_desc = "bottom of plume" ;
float plume_top(TSTEP, COL) ;
plume_top:units = "m" ;
plume_top:long_name = "plume rise distribut" ;
plume_top:var_desc = "top of plume" ;
float NO(TSTEP, COL) ;
NO:long_name = "NO" ;
NO:units = "mol hr-1" ;
NO:var_desc = "NO emissions" ;
NO:coordinates = "" ;
float NO2(TSTEP, COL) ;
NO2:long_name = "NO2" ;
NO2:units = "mol hr-1" ;
NO2:var_desc = "NO2 emissions" ;
NO2:coordinates = "" ;
...
// global attributes:
:SDATE = 2016163 ;
:STIME = 0 ;
:TSTEP = 10000 ;
:NSTEPS = 24 ;
:NCOLS = 158 ;
:NROWS = 91 ;
:NLAYS = 1 ;
:NVARS = 59 ;
:P_ALP = 33. ;
:P_BET = 45. ;
:P_GAM = -97. ;
:XCENT = -97. ;
:YCENT = 40. ;
:XORIG = -2556000. ;
:YORIG = -1872000. ;
:XCELL = 36000. ;
:YCELL = 36000. ;
:CPROJ = 2 ;
:GDTYP = 2 ;
:IUTM = 0 ;
:ISTAG = 0 ;
:ITZON = 0 ;
:CAMx_NAME = "PTSOURCE" ;
:NOTE = "/NUMBER OF FILES/ 1" ;
:FILEDESC = "PTSOURCE" ;
:FTYPE = 1 ;
:NTHIK = 1 ;
:VGTYP = 6 ;
:VGTOP = 10000.f ;
:VGLVLS = 0, 0 ;
:GDNAM = "CAMx v7.20" ;
:UPNAM = "CAMx v7.20" ;
:CDATE = 2022120 ;
:CTIME = 115618 ;
:WDATE = 2022120 ;
:WTIME = 115618 ;
:VAR-LIST = "flowrate plumerise plume_bottom plume_top NO NO2 OLE PAR TOL XYL FORM ALD2
ETH CO HONO ISOP MEOH ETOH SO2 SULF ALDX ETHA IOLE TERP NH3 HCL
CL2 CH4 TOLA ISP TRP PSO4 PNO3 POA PEC PFE PMN PK PCA P
MG PAL PSI PTI FPRM CPRM PRPA BENZ ETHY ACET KET ECH4 UNR NVOL
PNH4 PCL PH2O NA BNZA IVOA " ;

SMKPLOT v2.0 was able to plot the CAMx_test_case/ptsrce/point.camx.pt_oilgas.20160610.nc file, select NO2 as Pollutant, then selected Log Scale and Zoom to Data, then Generate Plot.

Image

Tar file containing the point.camx.pt_oilgas* sample files.

https://www.camx.com/getmedia/CAMx7-32-test_run-inputs_other-250801.tgz

Metadata

Metadata

Assignees

No fields configured for Feature.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions