19
The Na’onal Center for Atmospheric Research is sponsored by the Na’onal Science Founda’on. Any opinions, findings and conclusions or recommenda’ons expressed in this publica’on are those of the author(s) and do not necessarily reflect the views of the Na’onal Science Founda’on. ©UCAR DART Tutorial Sec’on 25: A simple 1D advec’on model: Tracer Data Assimila’on

DART Tutorial Sec’on 25: A simple 1D advec’on model ...€¦ · source_random_amp_frac = 0.000002 &perfect_model_obs_nml input_state_files = ‘perfect_input_source_noise.nc’

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: DART Tutorial Sec’on 25: A simple 1D advec’on model ...€¦ · source_random_amp_frac = 0.000002 &perfect_model_obs_nml input_state_files = ‘perfect_input_source_noise.nc’

TheNa'onalCenterforAtmosphericResearchissponsoredbytheNa'onalScienceFounda'on.Anyopinions,findingsandconclusionsorrecommenda'onsexpressedinthispublica'onarethoseoftheauthor(s)anddonotnecessarilyreflecttheviewsoftheNa'onalScienceFounda'on.

©UCAR

DARTTutorialSec'on25:Asimple1Dadvec'onmodel:

TracerDataAssimila'on

Page 2: DART Tutorial Sec’on 25: A simple 1D advec’on model ...€¦ · source_random_amp_frac = 0.000002 &perfect_model_obs_nml input_state_files = ‘perfect_input_source_noise.nc’

1DSimpleAdvec'onModel:Overview

1.Onedimensionalperiodicdomain.

2.Chao'c/stochas'cmodelforwind.

3.Singlepassivetraceradvectedbywind.

4.Stochas'cmodelfortracersourcecanbeadded.

5.Diurnalcyclefortracersourcecanbeadded.

6.Modelforphaseoffsetofdiurnalcyclecanbeadded.

DARTTutorialSec'on25:Slide2

Foundinmodels/simple_advec,on

models/simple_advec'on/work/

Page 3: DART Tutorial Sec’on 25: A simple 1D advec’on model ...€¦ · source_random_amp_frac = 0.000002 &perfect_model_obs_nml input_state_files = ‘perfect_input_source_noise.nc’

1DSimpleAdvec'onModel

Modeldomain,'mestepping,andnamelistcontrols(initalics):

1.One-dimensional,periodicgridondomain[0,1].

2.Equally-spacedgridpoints,numbercontrolledbynum_grid_points.

3.Loca'onofgridpointsis0,1/N,2/N,...,N-1/N;N=num_grid_points.

4.Distancebetweengridpointsisgrid_spacing_meters.

5.Time-steppingcontrolledby0me_step_days,0me_step_seconds.

DARTTutorialSec'on25:Slide3

Page 4: DART Tutorial Sec’on 25: A simple 1D advec’on model ...€¦ · source_random_amp_frac = 0.000002 &perfect_model_obs_nml input_state_files = ‘perfect_input_source_noise.nc’

Thewindmodel:Burger’sEqua'on

1.Windequa'onis:

2.Con'nuoussolu'onformsshockswhenuvarieswithx.

3.UseupstreamLagrangiandifferencing:

a.Letuibevelocityatgridpointilocatedatxi;Δtis'mestep.

b.Sourceloca'onforwindis:xs=xi–uiΔt

c.Linearlyinterpolateutoxs;thisisnewwindatgridpointi.

4.Thisisheavydamping.

5.Generallywon’tformshocks,evenwhenanaly'csolu'onshould.

∂u∂t

=−u ∂u∂x

DARTTutorialSec'on25:Slide4

Page 5: DART Tutorial Sec’on 25: A simple 1D advec’on model ...€¦ · source_random_amp_frac = 0.000002 &perfect_model_obs_nml input_state_files = ‘perfect_input_source_noise.nc’

WindModel2:Namelistcontrolsinitalics

1.Withoutsomethingaddi'onal,dampstospa'allyconstant.

2.Randomlyperturbeachgridpointvalueofuevery'mestep:

,i=1,...,N

W=wind_random_amp

3.Dampthespa'almeanwindfieldtoM=mean_wind:

WDiswind_damping_rate

ui = ui +Normal 0,WΔt( )

u t+Δt( )= u t( )−WDΔt u t( )−M⎡⎣ ⎤⎦

DARTTutorialSec'on25:Slide5

Page 6: DART Tutorial Sec’on 25: A simple 1D advec’on model ...€¦ · source_random_amp_frac = 0.000002 &perfect_model_obs_nml input_state_files = ‘perfect_input_source_noise.nc’

Tryingoutthewindmodel

1.  Run./perfect_model_obsandusencviewtrue_state.nctocheckoutthewinds (ignoretheotherfieldsfornow).

2.  Makesureyouunderstandthespa'al/temporalbehaviorofwinds.

3.  Playwithmean_wind,wind_damping_rate,wind_random_amp togetdifferenttypesofflows.

4.  Havingwindsreversewillbeinteres'ngforsometracercases.

DARTTutorialSec'on25:Slide6

cd models/simple_advection/workcsh workshop_setup.csh

Page 7: DART Tutorial Sec’on 25: A simple 1D advec’on model ...€¦ · source_random_amp_frac = 0.000002 &perfect_model_obs_nml input_state_files = ‘perfect_input_source_noise.nc’

Tracerfieldandnamelistcontrol(italics)

1.Asinglepassive(doesn’taffectwind)tracerisadvectedbythewind.

2.Havetracerconcentra'on,Ci,ateachgridpoint.

3.Semi-lagrangianupstream'medifferencing(sameasforwind).

4.Thereisatracersource/sinkrate,Si,ateachgridpoint.

5.AlsoabackgroundD=destruc0on_rate(percent/second).Ci=Ci+SiΔt–DΔtCi

DARTTutorialSec'on25:Slide7

Page 8: DART Tutorial Sec’on 25: A simple 1D advec’on model ...€¦ · source_random_amp_frac = 0.000002 &perfect_model_obs_nml input_state_files = ‘perfect_input_source_noise.nc’

Anassimila'onexample

1.Observa'ons(20altogether):Tenequally-spacedco-locatedobserva'onsofuandC.Locatedhalfwaybetweengridpoints(0.05,0.15,...,0.95).Forwardobserva'onoperatorislinearinterpola'on(mean).uobserva'onshaveerrorvarianceof16.01.Cobserva'onshaveerrorvarianceof1000.2.(Apparentlyinsignificantdecimalsmakechangingtheseeasier)

2.Basenamelistassimilatesbothtypesofobserva'ons.3.Run./perfect_model_obsfollowedby./filter.

(Makesuretousebaseinput.nml,etc.).4.UseMatlabtoexaminebehavioroftheassimila'on.5.Keeptrackoferrorsforconcentra'onandwindfields.

DARTTutorialSec'on25:Slide8

Page 9: DART Tutorial Sec’on 25: A simple 1D advec’on model ...€¦ · source_random_amp_frac = 0.000002 &perfect_model_obs_nml input_state_files = ‘perfect_input_source_noise.nc’

Anassimila'onexample(2)

1.Lookatimpactofusingsubsetsoftheobserva'ons.2.Observa'onsbeingusedarecontrolledin&obs_kind_nml.Defaultis: assimilate_these_obs_types = ‘TRACER_CONCENTRATION’, ‘VELOCITY’, evaluate_these_obs_types = ‘TRACER_SOURCE’ /

Changetoassimila'ngonlywindobserva'ons:

assimilate_these_obs_types = ‘VELOCITY’,evaluate_these_obs_types = ‘TRACER_CONCENTRATION’, ‘TRACER_SOURCE’ /

3.Tryassimila'ngonlywind,onlyconcentra'onandnotassimila'nganything(deleteassimilate_these_obs_types).Recordresultsandunderstandwhat’sgoingon.

DARTTutorialSec'on25:Slide9

Page 10: DART Tutorial Sec’on 25: A simple 1D advec’on model ...€¦ · source_random_amp_frac = 0.000002 &perfect_model_obs_nml input_state_files = ‘perfect_input_source_noise.nc’

Tracersourcemodelandnamelistcontrol

1.Sofar,tracersourcehasbeenconstantin'me(notinspace).

2.Makethesourcemodeladampedrandomwalkateachgridpoint.

Addrandomnoisetoeachgridpointateach'mestep. Alsodamptoa'memeanvalue.

whereSR=source_random_amp_frac,SD=source_damping_rateandis'memeanvalueforsourceatthisgridpoint.

isactuallya4thsetofstatevariables(definedateachgridpoint).WewillNOTworkwiththissetofvariableshere.

Si = Si +Normal 0,SR( )−SD Si−Si( )

Si

Si

DARTTutorialSec'on25:Slide10

Page 11: DART Tutorial Sec’on 25: A simple 1D advec’on model ...€¦ · source_random_amp_frac = 0.000002 &perfect_model_obs_nml input_state_files = ‘perfect_input_source_noise.nc’

Assimila'onwith'me-varyingtracersource

1.  Repeattheassimila'onswithdifferentclassesofobserva'ons.(./perfect_model_obsfollowedby./filter)

2.  This'me,alsokeeptrackoferrorsforthesourcefield.

3.  Whathappensifsource_random_amp_frac=0.00001?

Canyoufindwaystoimprovefilterperformanceinthesecases?

&model_nml source_random_amp_frac = 0.000002

&perfect_model_obs_nml input_state_files = ‘perfect_input_source_noise.nc’

&filter_nml input_state_file_list = ‘filter_input_list.txt’

filter_input_list.txtcontainsalistofinputfiles,forthismodel,thereisonlyonefileinthelist.Editthecontentsoffilter_input_list.txttocontainfilter_input_source_noise.nc

Usetheseselngs:

DARTTutorialSec'on25:Slide11

Page 12: DART Tutorial Sec’on 25: A simple 1D advec’on model ...€¦ · source_random_amp_frac = 0.000002 &perfect_model_obs_nml input_state_files = ‘perfect_input_source_noise.nc’

Diurnalcomponentfortracersourcemodel

1.  source_diurnal_rel_ampcontrolsamplitudeofdiurnalcomponentasfrac'onofsourcevalue.

2.Turnthisonandtryassimila'onexperimentsagain.

&perfect_model_obs_nml…input_state_files = “perfect_input_diurnal.nc”

&model_nml…source_diurnal_rel_amp = 0.05,

3.Changecontentsoffilter_input_list.txttofilter_input_diurnal.nc

DARTTutorialSec'on25:Slide12

Page 13: DART Tutorial Sec’on 25: A simple 1D advec’on model ...€¦ · source_random_amp_frac = 0.000002 &perfect_model_obs_nml input_state_files = ‘perfect_input_source_noise.nc’

Impactofobserva'ondensity

&perfect_model_obs_nml … obs_seq_in_file_name = “obs_seq.in.half”

1.  Repeatthedifferentassimila'oncases. Run./perfect_model_obsfollowedby./filter.

2.  Whathappensifobserva'onsgetevensparser?(You’llhavetodoyourownobserva'onsequencedesignforthis).

Trythis:

Itisagoodideatosvn revert set_def.out obs_seq.inaoeryouaredonewithyourownobserva'onsequencedesignand

experimenta'ontostayconsistentwiththetutorialmaterial.

DARTTutorialSec'on25:Slide13

Page 14: DART Tutorial Sec’on 25: A simple 1D advec’on model ...€¦ · source_random_amp_frac = 0.000002 &perfect_model_obs_nml input_state_files = ‘perfect_input_source_noise.nc’

UsingDAtolearnaboutthesourcemodel

&model_nml source_phase_noise = 0.00001

&perfect_model_obs_nml obs_seq_in_file_name = ‘obs_seq.in’ input_state_files = ‘perfect_input.nc’

&filter_nml input_state_file_list = ‘filter_input_list.txt’

1.  Changecontentsoffilter_input_list.txttofilter_input.nc2.  Run./perfect_model_obsfollowedby./filter

Thisisbasicallyparameteres'ma'on.Trythis:

DARTTutorialSec'on25:Slide14

Page 15: DART Tutorial Sec’on 25: A simple 1D advec’on model ...€¦ · source_random_amp_frac = 0.000002 &perfect_model_obs_nml input_state_files = ‘perfect_input_source_noise.nc’

DAforsourceswithlotsofstructure

&model_nml source_phase_noise = 0.0

&perfect_model_obs_nml obs_seq_in_file_name = ‘obs_seq.in’ input_state_files = ‘perfect_input_saw.nc’

Thesourcehaslargemeanvalueatpoints1,3and5,smallelsewhere.Canoneresolvethisspa'alstructure?

Trythis:

1.  Changecontentsoffilter_input_list.txttofilter_input_saw.nc2.  Run./perfect_model_obsfollowedby./filter

DARTTutorialSec'on25:Slide15

Page 16: DART Tutorial Sec’on 25: A simple 1D advec’on model ...€¦ · source_random_amp_frac = 0.000002 &perfect_model_obs_nml input_state_files = ‘perfect_input_source_noise.nc’

Problemstoexplore

1.Pickoneoftheconfigura'onsabove.Supposethatwindobserva'onscost$10andconcentra'onobserva'onscost$20.Ifyouhave$200tospendonobserva'ons(thatMUSTbelocatedhalfwaybetweenthegridpoints),whatisthebestobserving/assimila'onsystemyoucandesign?Theerrorvarianceoftheobserva'onsisfixedasintheoriginalcases.Youcanputmul'pleobserva'onsofanykindatanobservingloca'on.Themetricofsuccessisthesmallesttotalerrorfortheconcentra'on.Whatifthemetricisthesmallesttotalerrorforthesource?2.Supposeyoucanonlytakeobserva'onsonceadaybutthesourcehasafixeddiurnalcomponent.Isthereanywaytolearnanythingaboutthediurnalcomponent?Youcanuseasmanyobserva'onsasyouwantforthis.Askhowtochangetheobserva'onfrequency.

DARTTutorialSec'on25:Slide16

Page 17: DART Tutorial Sec’on 25: A simple 1D advec’on model ...€¦ · source_random_amp_frac = 0.000002 &perfect_model_obs_nml input_state_files = ‘perfect_input_source_noise.nc’

Problemstoexplore(2)

3.Forthesawtoothsourcepaqern,whathappensasthenumberofobservingloca'onsgoesdowninthiscase?4.Whathappenstothequalityoftheassimila'onsinsomeofthecasesaboveifthedestruc0on_rateismadesmallerorbigger(it’salreadypreqybiginsomesense)?5.Wemightbehappieriftracerwerenotcreatedordestroyedbytheassimila'on.Istheassimila'oncrea'nganddestroyingtracer?Isthereanysystema'ccomponenttothis?Canyoufindwaystoreducecrea'on/destruc'onbytheassimila'onscheme?6.Whathappensifweuseafixed-lagsmootherinthisproblem?Howshouldthesmootherbetuned?Whathappenstotracerdestruc'on/crea'oninthesmootheres'mates?

DARTTutorialSec'on25:Slide17

Page 18: DART Tutorial Sec’on 25: A simple 1D advec’on model ...€¦ · source_random_amp_frac = 0.000002 &perfect_model_obs_nml input_state_files = ‘perfect_input_source_noise.nc’

Problemstoexplore(3)

7.Canyouthinkofgoodwaystoaddmodelerrorintothissystem?Ifyoudo,whathappenstothequalityoftheassimila'onsforvarioustypesofexperiments?Simula'ngmodelerrorinameaningfulwayisessen'altopredic'ngwhatwillhappenwhenoneswitchestorealobserva'ons.

DARTTutorialSec'on25:Slide18

Page 19: DART Tutorial Sec’on 25: A simple 1D advec’on model ...€¦ · source_random_amp_frac = 0.000002 &perfect_model_obs_nml input_state_files = ‘perfect_input_source_noise.nc’

1.   FilteringForaOneVariableSystem2.   TheDARTDirectoryTree3.   DARTRun,meControlandDocumenta,on4.   Howshouldobserva,onsofastatevariableimpactanunobservedstatevariable?

Mul,variateassimila,on.5.   ComprehensiveFilteringTheory:Non-Iden,tyObserva,onsandtheJointPhaseSpace6.   OtherUpdatesforAnObservedVariable7.   SomeAddi,onalLow-OrderModels8.   DealingwithSamplingError9.   MoreonDealingwithError;Infla,on10.   RegressionandNonlinearEffects11.   Crea,ngDARTExecutables12.   Adap,veInfla,on13.   HierarchicalGroupFiltersandLocaliza,on14.   QualityControl15.   DARTExperiments:ControlandDesign16.   Diagnos,cOutput17.   Crea,ngObserva,onSequences18.   LostinPhaseSpace:TheChallengeofNotKnowingtheTruth19.   DART-CompliantModelsandMakingModelsCompliant20.   ModelParameterEs,ma,on21.   Observa,onTypesandObservingSystemDesign22.   ParallelAlgorithmImplementa,on23.   Loca,onmoduledesign(notavailable)24.   Fixedlagsmoother(notavailable)25.   Asimple1Dadvec,onmodel:TracerDataAssimila,on

DARTTutorialIndextoSec'ons

DARTTutorialSec'on25:Slide19