Closed mvieno closed 5 years ago
Hi @mvieno I do not know if @mifads is on holidays, but I think he is the one the most experience mix/match emissions.
Hi @avaldebe , ok it is really not urgent, and I may have done something wrong.
Massimo
Hi Folks, I have never worked with mixed emissions as far as I remember (at least not GNFR and SNAP), so just add @gitpeterwind into this. Anyway, I'm on holiday ;-)
Hi @mvieno, There are several ways to mix SNAP and GNFR... and several ways to get it wrong also, i.e. it is not fully safe. The model runs either in GNFR or SNAP "mode", not both; but it can map the one to the other. For now the mapping is simple (each gnfr sector is mapped onto one snap sector), so that there should be no difference in the results. Could you show us the relevant part of the config file? (and which file is GNFR/SNAP). Does your emission include a global attribute SECTOR_NAME? for example :SECTORS_NAME = "GNFR" or :SECTORS_NAME = "SNAP"
Hi @gitpeterwind , no I didn't setup the sector in the config, nor my NetCDF flile has the global attribute to specify the type of sectors. So it make sense that the model didn't know what to do with the emissions.
My NetCDF looks like this: float Emis\:GB\:snap\:1(NORTHING, EASTING) ; Emis\:GB\:snap\:1:snapTotal = "4.32618 Gg/year" ; Emis\:GB\:snap\:1:numberofrecords = 1 ; Emis\:GB\:snap\:1:long_name = "Emis:GB:snap:1" ; Emis\:GB\:snap\:1:CountryNum = 27 ; Emis\:GB\:snap\:1:units = "Mg/1x1km/year" ; Emis\:GB\:snap\:1:_FillValue = 9.96921e+36f ;
So to summarise, if nothing is specified in the emissions NetCDF general attributes (i.e. SNAP or GNFR) nor in the config and the variables names are defined as above does the model assumes SNAP?
I have a suggestion, why not remove all SNAP or GNFR setup (i.e. emission height) and other stuff, but add attributes in the NetCDF? for example the emissions height can be added as attributes in the NetCDF.
Do you have a full list of config call?
Massimo
Hi Massimo,
You should add something like emis_inputlist(1)%type = "SNAPsectors", for your UK emissions. If the other emission file has an attribute :SECTORS_NAME = "GNFR", then GNFR sectors will be used, but the UK emissions will be mapped onto GNFR. If you prefer to use SNAP sectors, set in config file: SECTORS_NAME = "SNAP", Then the GNFR emissions will be mapped onto SNAP (assuming the file has an attribute :SECTORS_NAME = "GNFR"). Normally it should give the same result.
For the longer term, yes, we are (slowly) working on a scheme were all the parameters (height, species, timefactors etc.) can be defined by the user, by adding more ":parameter:value" in the attributes.
We do not have an exhaustive list of configuration options, but you can find most of them in the Config_module.f90.
Hi, just to finish on this, I got a bit confused a some NetCDF emissions have sectors specified and some have not: for example FMIGlobShip2015mon.nc, AircraftEmis_FL.nc, OceanicEmissions_GEIA.nc do not have any info if SNAP of GNFR as I suppose those emissions type are hardcoded in the model.
These emissions should have not then interfered with the SNAP vs. GNFR emissions type!? I am asking this as all the emissions file I created, Europe, UK and Shipping, have the variables name similar to this Emis\:INTSHIPS\:snap\:8. Still, I'll add the emis_inputlist(1)%type = "SNAPsectors" in my config just in case.
many thanks Massimo
Massimo
Sector emissions are treated differently than other emissions. Sector emissions have emission height distributions, splits and timefactors. Other emissions (Aircraft, lightning, volcanoes, DMA, Oceanic etc.) are not treated as sector emissions. They will not be influenced by GNFR/SNAP emission choices. FMIGlobShip2015mon.nc is "special"; it has a temporary status.
Hi, many thanks. I am testing a mixed SNAP-GNFR run following your suggestion. The simulation should be finished by tomorrow and I'll let you know.
For reference this is my config_emep.nml
&INPUT_PARA
GRID = 'lat-lon'
iyr_trend = 2015,
runlabel1 = 'EMEP4UK_emep-ctm-rv4_17_ons_WRF3.7.1_CEHLAND2015_EU_to_UK_GNFR_trend2015_emiss2015_EU_2015',
runlabel2 = 'CEH_Edinburgh',
startdate = 2015,01,01,000000,
enddate = 2016,01,01,000000,
&end
&Machine_config
DataPath(1) = '/',
&end
&ModelConstants_config
meteo = 'wrfout_d01_YYYY-MM-DD_00:00:00',
DegreeDayFactorsFile = 'MetDir/DegreeDayFactors.nc',
!------------------------------
EXP_NAME = 'EMEPSTD',
MY_OUTPUTS = 'EMEPSTD',
!------------------------------
EmBio%GlobBvocMethod = 'GLC-CLM', ! default for GLOBAL runs, not used for Europe
EmBio%CLF = 0.59, ! 1/1.7 for CLM
LandCoverInputs%LandDefs = 'Inputs_LandDefs.csv',
LandCoverInputs%Do3seDefs = 'Inputs_DO3SE.csv',
LandCoverInputs%MapFile = 'EMEP_LCM2015.nc',
'glc2000xCLMf18.nc',
YieldModifications = 'VBS',
PBL%ZiMIN = 50.0,
!------------------------------
USES%testname = 'EMEPSTD',
USES%FOREST_FIRES = T,
USES%EMISSTACKS = F, ! Reads PointSources file
USES%DEGREEDAY_FACTORS = F,
USES%PlumeMethod = 'PVDI', ! default PVDI, possible: NILU, ASMI, PVDI
USES%PFT_MAPS = F, ! PFT LAI tests
!------------------------------
USES%SOILWATER = T, ! Uses SMI from meteo data
USES%CONVECTION = F,
USES%SEASALT = T,
USES%AIRCRAFT_EMIS = T, ! Needs global file, see manual
USES%LIGHTNING_EMIS = T,
!------------------------------
USES%EURO_SOILNOX = F, ! diff for global + Euro runs
EURO_SOILNOX_DEPSCALE = 1.0, ! Scale, default 1 (see ModelConstants_ml)
USES%GLOBAL_SOILNOX = T, ! diff for global + Euro runs
!------------------------------
USES%POLLEN = F,
USES%ROADDUST = T,
USES%DUST = T,
NETCDF_DEFLATE_LEVEL = 4, ! 1-9 GZIP compress, 0 no compress, -1 netcdf3
INERIS_SNAP1 = F,
INERIS_SNAP2 = F,
!------------------------------
! (1) EMEP emissions
emis_inputlist(1)%name='GNFRemis_EMEP01_2015.nc',
emis_inputlist(1)%excl(1:)='GB',
! (2) UK NAEI
emis_inputlist(2)%name='POLL_NAEI_web_2015.nc',
emis_inputlist(2)%type='SNAPsectors',
! (3) DMS need to be reoved from annual emission before using this
emis_inputlist(3)%name= 'OceanicEmissions_GEIA.nc',
emis_inputlist(3)%type= 'DMS',
! (4)
emis_inputlist(4)%name= 'FMIGlobShip2015mon.nc',
emis_inputlist(4)%type= 'Special_ShipEmis',
EMIS_OUT = F, ! Output emissions in separate files (memory demanding)!------------------------------
!------------------------------
SELECT_LEVELS_HOURLY = F, ! hourly output flag for 3DPROFILES
FORECAST = F,
USES%ASH = T, ! Ash from historical Volcanic Eruptions
ANALYSIS = F, ! EXPERIMENTAL: 3DVar data assimilation
USES%AOD = F, ! Used for FORECASTs usually
BGND_CH4 = -1, ! Reset CH4 (use ppb). (Use -1 for defaults)
SKIP_RCT = -1, ! Will zero-out some rct, for tests. (Use -1 for defaults)
!--- 'fake' vegetation for ozone POD calculations
FLUX_VEGS = 'IAM_CR','IAM_DF','IAM_MF',
!code to setup the domain run
&end
&ColumnSource_config
!------------------------------
! volcanic emissions from passive degassing and historical eruptions
!------------------------------
flocdef='columnsource_location.csv',
femsdef='columnsource_emission.csv',
need_topo=F, ! stop simulation if topo_nc not found
NMAX_LOC=-1, ! estimate from lines in flocdef
NMAX_EMS=-1, ! estiamte from lines in femsdef
&end
&Fire_config
need_poll = F,
FINN_PATTERN='FFire_YYYY.nc',
&end
&Nest_config
!-------- Read/Write MODEs
MODE_READ = 'NONE', ! do nothing
MODE_SAVE = 'NHOUR', ! do nothing
NHOURREAD = 3, ! hours between reads. Fraction of 24
NHOURSAVE = 3, ! hours between saves. Fraction of 24
!-------- File name templates for Nest I/O
template_read_3D = 'EMEP_IN.nc', ! a different path can be set here
template_read_BC = 'EMEP_IN.nc', ! for each of the IO IC/BC files,
template_write = 'EMEP_OUT.nc', ! if needed.
out_DOMAIN = 30,70,30,70,
&end
&ExternalBICs_config
USE_EXTERNAL_BIC = F,
EXTERNAL_BIC_NAME = 'DUMMY',
&end
&OutputConcs_config
OutputConcs=
'HMIX' ,'m' ,'2d','HMIX' ,'MISC' ,'YMDI',
'T2m' ,'degC','2d','T2m' ,'MISC' ,'YMD',
'SURF_ppbC_VOC' ,'ppb' ,'2d','VOC' ,'MISC' ,'YMD',
'SO2' ,'ug' ,'2d','AIR_CONCS','SPEC' ,'YMDI',
'NH3' ,'ug' ,'2d','AIR_CONCS','SPEC' ,'YMDI',
'HNO3' ,'ug' ,'2d','AIR_CONCS','SPEC' ,'YMDI',
'NO2' ,'ug' ,'2d','AIR_CONCS','SPEC' ,'YMDI',
'NO' ,'ug' ,'2d','AIR_CONCS','SPEC' ,'YMDI',
'SO4' ,'ug' ,'2d','AIR_CONCS','SPEC' ,'YMDI',
'NO3_F' ,'ug' ,'2d','AIR_CONCS','SPEC' ,'YMDI',
'NO3_C' ,'ug' ,'2d','AIR_CONCS','SPEC' ,'YMDI',
'NH4_F' ,'ug' ,'2d','AIR_CONCS','SPEC' ,'YMDI',
'SEASALT_F' ,'ug' ,'2d','AIR_CONCS','SPEC' ,'YMD',
'SEASALT_C' ,'ug' ,'2d','AIR_CONCS','SPEC' ,'YMD',
'DUST_ROAD_F' ,'ug' ,'2d','AIR_CONCS','SPEC' ,'YMD',
'DUST_ROAD_C' ,'ug' ,'2d','AIR_CONCS','SPEC' ,'YMD',
'DUST_WB_F' ,'ug' ,'2d','AIR_CONCS','SPEC' ,'YMD',
'DUST_WB_C' ,'ug' ,'2d','AIR_CONCS','SPEC' ,'YMD',
'DUST_SAH_F' ,'ug' ,'2d','AIR_CONCS','SPEC' ,'YMD',
'DUST_SAH_C' ,'ug' ,'2d','AIR_CONCS','SPEC' ,'YMD',
'O3' ,'ppb' ,'2d','AIR_CONCS','SPEC' ,'YMDI',
'NO' ,'ppb' ,'2d','AIR_CONCS','SPEC' ,'YMD',
'NO2' ,'ppb' ,'2d','AIR_CONCS','SPEC' ,'YMD',
'NH3' ,'ppb' ,'2d','AIR_CONCS','SPEC' ,'YMD',
'HNO3' ,'ppb' ,'2d','AIR_CONCS','SPEC' ,'YMD',
'SO2' ,'ppb' ,'2d','AIR_CONCS','SPEC' ,'YMD',
'CO' ,'ppb' ,'2d','AIR_CONCS','SPEC' ,'YMD',
'HCHO' ,'ppb' ,'2d','AIR_CONCS','SPEC' ,'YMD',
'C5H8' ,'ppb' ,'2d','AIR_CONCS','SPEC' ,'YMDI',
'OXN' ,'ugN' ,'2d','AIR_CONCS','GROUP','YMD',
'NOX' ,'ugN' ,'2d','AIR_CONCS','GROUP','YMD',
'RDN' ,'ugN' ,'2d','AIR_CONCS','GROUP','YMD',
'TNO3' ,'ug' ,'2d','AIR_CONCS','GROUP','YMD',
'SIA' ,'ug' ,'2d','AIR_CONCS','GROUP','YMD',
'PMFINE' ,'ug' ,'2d','AIR_CONCS','GROUP','YMD',
'PM10' ,'ug' ,'2d','AIR_CONCS','GROUP','YMDI',
'PMCO' ,'ug' ,'2d','AIR_CONCS','GROUP','YMD',
'PPM25' ,'ug' ,'2d','AIR_CONCS','GROUP','YMD',
'PPM_C' ,'ug' ,'2d','AIR_CONCS','GROUP','YMD',
'SS' ,'ug' ,'2d','AIR_CONCS','GROUP','YMD',
'DUST_NAT_F' ,'ug' ,'2d','AIR_CONCS','GROUP','YMD',
'DUST_NAT_C' ,'ug' ,'2d','AIR_CONCS','GROUP','YMD',
'DUST' ,'ug' ,'2d','AIR_CONCS','GROUP','YMD',
'PPM25_FIRE' ,'ug' ,'2d','AIR_CONCS','GROUP','YMD',
'OMCOARSE' ,'ug' ,'2d','AIR_CONCS','GROUP','YMD',
'ECFINE' ,'ug' ,'2d','AIR_CONCS','GROUP','YMD',
'ECCOARSE' ,'ug' ,'2d','AIR_CONCS','GROUP','YMD',
'PMFINE' ,'ug_PM','2d','AIR_CONCS','GROUP','YMD',
'OM25' ,'ug_PM','2d','AIR_CONCS','GROUP','YMD',
'OM25' ,'ugC_PM','2d','AIR_CONCS','GROUP','YMD',
'OMCOARSE' ,'ugC_PM','2d','AIR_CONCS','GROUP','YMD',
'ASOA' ,'ug_PM','2d','AIR_CONCS','GROUP','YMD',
'BSOA' ,'ug_PM','2d','AIR_CONCS','GROUP','YMD',
'FFIRE_BC' ,'ug' ,'2d','AIR_CONCS','SPEC' ,'YMD',
'FFIRE_REMPPM25' ,'ug' ,'2d','AIR_CONCS','SPEC' ,'YMD',
'FFIRE_OM' ,'ug' ,'2d','AIR_CONCS','SPEC' ,'YMD',
'SURF_ug_PM25' ,'ug' ,'2d','PM25' ,'MISC','YMDI',
'SURF_ug_PM25X' ,'ug' ,'2d','PM25X' ,'MISC','YMD',
'SURF_ug_PM25X_rh50' ,'ug' ,'2d','PM25X_rh50','MISC','YMD',
'SURF_ug_PM25_rh50' ,'ug' ,'2d','PM25_rh50' ,'MISC','YMD',
'SURF_ug_PM10_rh50' ,'ug' ,'2d','PM10_rh50' ,'MISC','YMD',
'AOD' ,' ' ,'550nm','AOD:GROUP','MISC','YMD',
'PM10ONS' ,'ug' ,'2d','AIR_CONCS','GROUP','YMD',
'PM25ONS' ,'ug' ,'2d','AIR_CONCS','GROUP','YMD',
! 'EXT' ,'1/m','550nm','EXT:GROUP','MISC','YM',
! 'NO2' ,'mcm2','k20','COLUMN' ,'MISC' ,'I',
! 'O3' ,'mcm2','k20','COLUMN' ,'MISC' ,'I',
! 'CO' ,'mcm2','k20','COLUMN' ,'MISC' ,'I',
! 'HCHO' ,'mcm2','k20','COLUMN' ,'MISC' ,'I',
OutputVegO3=
'POD1_IAM_DF' ,'POD', 1.0,'MM','IAM_DF',F,0,999,'YM',
'POD0_IAM_DF' ,'POD', 0.0,'MM','IAM_DF',F,0,999,'YM',
'POD1_IAM_MF' ,'POD', 1.0,'MM','IAM_MF',F,0,999,'YM',
'POD0_IAM_MF' ,'POD', 0.0,'MM','IAM_DF',F,0,999,'YM',
'POD1_DF' ,'POD', 1.0,'MM','DF ',F,0,999,'YM',
'POD1_CF' ,'POD', 1.0,'MM','CF ',F,0,999,'YM',
'POD3_TC' ,'POD', 3.0,'MM','TC ',F,0,999,'YM',
'POD1_IAM_CR' ,'POD', 1.0,'MM','IAM_CR',F,0,999,'YM',
'POD0_IAM_CR' ,'POD', 0.0,'MM','IAM_CR',F,0,999,'YM',
'POD3_IAM_CR' ,'POD', 3.0,'MM','IAM_CR',F,0,999,'YM',
'MMAOT40_TC' ,'AOT',40.0,'MM','TC ',F,0,999,'YM',
'MMAOT40_IAM_DF' ,'AOT',40.0,'MM','IAM_DF',F,0,999,'YM',
'MMAOT40_IAM_MF' ,'AOT',40.0,'MM','IAM_MF',F,0,999,'YM',
'MMAOT40_IAM_CR' ,'AOT',40.0,'MM','IAM_CR',F,0,999,'YM',
'EUAOT40_Crops' ,'AOT',40.0,'EU','IAM_CR',F,0,999,'YM',
'EUAOT40_Forests','AOT',40.0,'EU','IAM_DF',F,0,999,'YM',
'MMAOT40_IAM_WH' ,'AOT',40.0,'MM','IAM_WH',F,0,999,'YM',
&end
&OutputDep_config
DDEP_ECOS =
'Grid' ,'YMD',
'Conif' ,'YMD',
'Seminat' ,'YMD',
'Water_D' ,'YMD',
'Decid' ,'YMD',
'Crops' ,'YMD',
'Desert' ,'YMD',
DDEP_WANTED =
'PM25ONS' ,'GROUP','mg',
'PM10ONS' ,'GROUP','mg',
'SOX' ,'GROUP','mgS',
'OXN' ,'GROUP','mgN',
'RDN' ,'GROUP','mgN',
'SO2' ,'SPEC' ,'mgS',
'HNO3' ,'SPEC' ,'mgN',
'NH3' ,'SPEC' ,'mgN',
'SO4' ,'SPEC' ,'mgS',
'NH4_F' ,'SPEC' ,'mgN',
'NO3_F' ,'SPEC' ,'mgN',
'NO3_C' ,'SPEC' ,'mgN',
'NO2' ,'SPEC' ,'mgN',
'O3' ,'SPEC' ,'mg',
WDEP_WANTED =
'PM25ONS' ,'GROUP','mg','YMD',
'PM10ONS' ,'GROUP','mg','YMD',
'PREC' ,'PREC' ,'mm' ,'YMD',
'SOX' ,'GROUP','mgS','YMD',
'OXN' ,'GROUP','mgN','YMD',
'RDN' ,'GROUP','mgN','YMD',
'SO2' ,'SPEC' ,'mgS','YMD',
'HNO3' ,'SPEC' ,'mgN','YMD',
'NH3' ,'SPEC' ,'mgN','YMD',
'SO4' ,'SPEC' ,'mgS','YMD',
'NH4_F' ,'SPEC' ,'mgN','YMD',
'NO3_F' ,'SPEC' ,'mgN','YMD',
'NO3_C' ,'SPEC' ,'mgN','YMD',
'NO2' ,'SPEC' ,'mgN','YMD',
&end
&OutputSize_config
!restrict size of output files. (Sizes defined with respect to fulldomain)
! fullrun_DOMAIN = 1,100, 1,100,
! month_DOMAIN = 100,300, 1,100,
! day_DOMAIN = 1,100,90,100,
! hour_DOMAIN = 50,100,50,100,
!restrict the levels on 3D output:
! num_lev3d number of levels on 3D output (default:KMAX_MID)
! lev3d_from_surface coult levels from surface (default:.false.)
! lev3d list of levels in output order (default:KMAX_MID..1)
! num_lev3d=3,lev3d_from_surface=T, ! 3 levels from surface: 20,19,18
! num_lev3d=3,lev3d_from_surface=F, ! 3 levels from model top: 1,2,3
! num_lev3d=8,lev3d_from_surface=T,lev3d=1,2,3,4,6,9,10,12, ! 8 levels from surface
&end
Hi, so I have done some more test, and at least with my config.nml it seems that it is better not to mix SNAP and GNFR. If I run the EMEP4UK with only GNFR the results are as I would expect.
In the 'GNFRemis_EMEP01_2015.nc' also there are some very high maritime emissions. The figure shows the 2015 SO2 emissions but similar for NOx. The emissions file I use do not include the latest 2015 emissions restriction so I am expecting to be higher (based on the 2011 FMI emissions).
@gitpeterwind ?
It is some time ago now... Do I understand correctly, that you say that the GNFR emissions get higher when combined with the UK SNAP emissions than without UK emissions?
Hi @gitpeterwind, it was some time ago, but If you look at the two maps in my first post, what I have was lower concentration for NH3 when I was mixing GNFR and SNAP, but the total emissions where the same.
The last post was FYI, as the GNFRemis_EMEP01_2015.nc emissions did look a bit high for shipping (very high between Southampton and France).
Massimo
Hi Massimo, OK, but in the first test, you did not set type='SNAPsectors' or GNFR, and I suspect that this put the NH3 emissions in the wrong sector. About shipping in GNFRemis_EMEP01_2015.nc, maybe @agnesny can answer? (I think we do no not use them from this file, but takes them from the FMI file instead).
Hi Massimo,
As far as I understand you are using the 0.1 deg EMEP emissions for 2015 as it was delivered by CEIP for the 2017 reporting. Then Peter is right, the ship emissions in this file are still based on the TNO-MACC-III emission data, and we have not used them in our status run in 2017. We replaced the shipping data with the FMI ship emissions, except NMVOC, which was not included in the FMI data at that time. CEIP recalculated the period 2000-2015 last year, so there is an improved dataset available for 2015. The ship emissions in the new one are based on the FMI data, and there might also be included recalculations of some land-based emissions, but I do not remember all details.
Hi @gitpeterwind, unfortunately I didn't store the test runs, but even when I specified the type='SNAPsectors' (see my namelist above) I got the same results.
Massimo
Hi @agnesny, the emissions file is the one is made available from this GitHub for the rv4.17 EMEP model. It is not that important and I understand that the shipping emissions are form the FMI.
But in the config_emep.nml from GitHub say this:
!------------------------------ EmisDir = 'DataDir/EMEP01', emis_inputlist(1)%name= 'EmisDir/GNFRemis_EMEP01_YYYY.nc', ! fractions emiss format emis_inputlist(2)%name= 'DataDir/OceanicEmissions_GEIA.nc', emis_inputlist(2)%type= 'DMS', emis_inputlist(3)%name= 'DataDir/FMIGlobShip2015mon.nc', emis_inputlist(3)%type= 'Special_ShipEmis',
So EMEP it may skip the shipping form 'GNFRemis_EMEP01_2015.nc' elsewhere in the model? as the FMI have the status of 'Special_ShipEmis'.
I may misunderstood the whole emissions setup or doing something wrong? In my setup I also use the FMI but I explicitly exclude the shipping form my input.
Massimo
Hi @mvieno,
If both GNFRemis_EMEP01_YYYY.nc and FMIGlobShip2015mon.nc are used, the shipping emissions (MED, BAS, BLS, NOS and ATL) should be excluded from the former to avoid double counting, so you are probably doing that right.
Could you send your config namelist?
Also, I am not quite familiar with the data we have on the open source site, e.g. which version of the GNFRemis_EMEP01_2015.nc file is there. I remember we made a version where we already removed the shipping emissions except NMVOCs, and the config you copied above would work properly only with that version, as I can not see any excluded areas listed there.
I need to leave now, but I can have a look again tomorrow.
Agnes
Hi @mvieno
Was your question answered? If so, please close the issue. Otherwise, let us know what is unclear.
Hi, I am testing an EMEP4UK new emissions setup using the provided GNFRemis_EMEP01_2015.nc for Europe and a SNAP based emissions file for the UK.
I run the rv4.17 with all SNAP and with the GNFR-SNAP mix, the total UK NH3 is the same but the surface concnetrations for NH3 are quite different (much lower for the GNFR-SNAP mix) for the UK only. The only thing could be different is the emissions height which may get mixed up? I am using the layers emissions height rather than the pressure level.
Massimo