OCEAN file generated with Spatial Allocator has negative values of OPEN

I generated the OCEAN file using Spatial Allocator but the OPEN variable has negative values along the US state border as you can see (white color=negative) below:

The other variable SURF does not have negative values.:

What could have caused it?


What shapefile did you use to create the oceanfile? Can you use QGIS to view the attribute table of your shapefile?

I took a look at the shapefile that is provided with Spatial Allocator, the surfzone_NC_SC shapefile.
When I use QGIS > Add Layer > Add Vector Layer > add surfzone_NC_SC.shp
I then zoomed to the layer,
Then used Properties > Categorize > select the Description to create the categories.
I then see a map of NC/SC with two variables: LAND and SURFZONE
I increased the thickness of the SURFZONE variable so you can distinguish it from the LAND boundary in the map below.
You can see that the SURFZONE is only defined along the coast.

If you want to upload the shapefile that you used to create the OCEAN file, I can take a look.

I found a paper that described how the shapefile with the surfzone is created. I have not done this step myself, but perhaps it will help you.


I also used QGIS to plot the surfzone_poly_st shapefile that is provided with the spatial allocator. Is that the shapefile that you used to generate the OCEAN file for your domain?

I checked the spatial allocator code, and saw that I was using the surfzone_poly_st shapefile:

setenv INPUT_FILE_NAME $DATADIR/surfzone_poly_st/surfzone_poly_st

When I look at the OPEN variable using ncdump, I can see very small negative values.
I also zoomed into one of the state border lines, and then used probe to probe the value, and it is -1.E-16.
I think this may have been a round off error in the Spatial Allocator calculation, but it is curious that it is happening along the state border lines.

I don’t remember if CMAQ uses the OPEN variable at all. I think it just uses SURF to calculate the ocean sea spray.

Thanks @lizadams, if only SURF variable of the OCEAN file is used in CMAQ, then I should be fine. I’ll run and see if any issue occurs.

Edit: on a second thought, SURF variable is only about the buffer between ocean and land (just the coasts), while OPEN is the variable indicating land/sea (basically a mask), so I think using only SURF variable will not work.

Looking at the relevant code in centralized_io_module.F and SSEMIS.F, both OPEN and SURF are read in by the former and used as variables OFRAC and SFRAC in the emission calculations performed by the latter. Moreover, after reading in OPEN and SURF, centralized_io_module.F sets negative values of either variable to zero in lines 2365-2366. I do not know the origin of this check, but it suggests that small negative numbers in the OCEAN file generated with the Spatial Allocator are a known issue and triggered this check for negative values in the CMAQ code.